神經網絡模型特點:
訓練模型的時間比較長;對于訓練數據沒涵蓋到的數據,也有比較好的預測能力。相對于決策樹,它處理連續型的輸入輸出能力比較好。神經網絡模型不容易解釋。
神經網絡分三層,input layer, hidden layer和output layer. 理論上hidden layer可以有任意多層,在實際中,往往只有一層被使用。
對輸入數據的每個屬性進行標準化可以提高訓練速度。對于連續型的屬性,往往每個domain value一個input unit. 如果是classification,對于二值型的output, 可以用一個output unit(0,1)表示。如果有多個class, 每種class可以用一個output unit.
hidden layer里放多少unit往往是慢慢嘗試出來的。
貼書上的圖,看文字敘述很難懂,但是看一個具體的例子是怎么算的數就比較容易:
其中:
是算某一個節點輸入值的. Wij是權重值,每個節點的初始權重值是隨機的,往往是-1到1或者-0.5到0.5,
是Bias.
算某個節點的output,是這樣算的:
, 這樣可以得到一個0到1之間的數,range比較小。
神經網絡的大致思路是,如果經過神經網絡后預測的值不對,就返回來調整hidden layer units的權重,做錯了事就回頭反思一下,直到總做對事為止。
計算誤差的方式,output layer:
hidden layer:
,其中Wjk是從j到下一層的k節點的權重。所以這個過程叫backpropagate.
backpropagate是為了修改權重和bias。
修改權重:
其中l叫learning rate, 通常是0到1之間的數。
修改bias:
神經網絡結束調節可以有多種,比如
足夠小,或者misclassification足夠小或者已經走過了預先設定那么多次的epochs
例子:

神經網絡往往被批評可解釋性不好,一種解釋的方式是sensitivity analysis.就是x如果減5%,y會增加8%這種風格。