2016-01-21 205 views
1

不知道如何問這個,但在這裏。所以我一直試圖理解機器學習和神經網絡的使用。神經網絡/機器學習,如何將數據轉化爲數字?

我有一個在C#中學習神經網絡的簡單例子。 我明白這個代碼在做什麼,它非常簡單,我有一個「Patterns.csv」文件。 它包含: x輸入,y輸入和0或1是或否。

0.11, 0.82, 0 
0.13, 0.17, 0 
0.20, 0.81, 0 
0.21, 0.57, 1 
0.25, 0.52, 1 
0.26, 0.48, 1 

這Patterns.csv用於訓練網絡,所以如果我手動輸入simular X和Y輸入它將給我一個1或0有關有多少圖案具有。

現在我的問題是如何將實際數據轉換爲x和y輸入?通過使用字符串使用圖像或甚至是簡單的垃圾郵件過濾器?我真的不明白如何將實際數據轉換爲兩個浮點數。

我假設這將是正確的方式來使用這個簡單的神經網絡的例子,如果任何人有任何想法或解釋或一個很酷的方法來做到這一點,請隨時發佈任何相關的感謝!

回答

1

This article文章包含了所謂的「數據標準化」基本算法

,你所要做的就是把數據轉換像

Lives in | IsMarried 
Chicago | 1 
New York | 1 
New York | 0 
... 

分爲:

Chicago | New York | IsMarried 
1  | 0  | 1 
0  | 1  | 1 
0  | 1  | 0 
... 

我打賭還有其他技術,但這是我們在本學期監督機器學習講座中使用的技術。

只要你有這個規範化的矩陣,你可以使用任何聚類/機器學習algortihm。

也有一個look here. This post解釋了爲什麼這種編碼/規範化是必要的。

那麼,爲什麼不只是更換芝加哥0,紐約1等

這不是一個好主意,因爲一些機器學習算法處理不同的值作爲「距離」。因此,芝加哥(0)和紐約(1)(距離爲1)不會像紐約和第100個城市(距離爲99)獲得相同的「非相似性評級」。

1

關鍵字爲您的搜索是編碼。這是一個很好的文章:

https://visualstudiomagazine.com/articles/2013/07/01/neural-network-data-normalization-and-encoding.aspx

這很好地解釋這一概念的一個好工作。下面是摘錄演示了一招,以幫助培訓:

獨立的分類數據的一個例子是一個預測變量 社區,這可以採取值「郊區」,「農村」和「城市」對於 這樣的數據,我推薦使用經常被稱爲1-of-(C-1)效應 編碼。編碼效果不明顯,最好通過 解釋:例如:

suburban = [ 0.0, 0.0, 1.0] 
    rural = [ 0.0, 1.0, 0.0] 
    city  = [-1.0, -1.0, -1.0]