1. 程式人生 > >數據挖掘——回歸分析2——簡單神經網絡的python實現

數據挖掘——回歸分析2——簡單神經網絡的python實現

https src 簡單 操作 結果 core 縮放 sigmoid 神經元

神經網絡(Artificial Neural Network):全稱為人工神經網絡(ANN),是一種模仿生物神經網絡(動物的中樞神經系統,特別是大腦)的結構和功能的數學模型或計算模型。 部分原理: 下面是單個神經元的數學模型:
技術分享圖片 +1代表偏移值(偏置項, Bias Units);X1,X2,X2代表初始特征;w0,w1,w2,w3代表權重(Weight),即參數,是特征的縮放倍數;特征經過縮放和偏移後全部累加起來,此後還要經過一次激活運算然後再輸出。

最常見的激活函數是Sigmoid(S形曲線),Sigmoid有時也稱為邏輯回歸(Logistic Regression),簡稱logsig。logsig曲線的公式如下:
技術分享圖片


還有一種S形曲線也很常見到,叫雙曲正切函數(tanh),或稱tansig,可以替代logsig。
技術分享圖片
下面是它們的函數圖形,從圖中可以看出logsig的數值範圍是0~1,而tansig的數值範圍是-1~1。

技術分享圖片

技術分享圖片 在python中的實現: 對訓練集的預處理與邏輯回歸相同,從模型構建開始不同 ###對訓練集做預處理操作
###模型構建、訓練、評分
from sklearn.neural_network import MLPClassifier

for i in range(1,11):
    ANNmodel = MLPClassifier(
            activation
=relu, #激活函數為relu,類似於s型函數 hidden_layer_sizes=i) #隱藏層為i ANNmodel.fit(inputData,outputData) #訓練模型 score = ANNmodel.score(inputData,outputData) #模型評分 print(str(i) + , + str(score)) #每次循環都打印模型評分 #模型評分基本穩定在0.83x左右

可以發現,隱藏層增大,模型評分趨於一個較穩定的值,即並非隱藏層越多,模型越好。

###對測試集做相同的預處理操作
###輸入測試集作為參數
inputNewData = dummyNewData[dummySelect]
###得到預測結果,以序列形式進行輸出
ANNmodel.predict(inputNewData)

數據挖掘——回歸分析2——簡單神經網絡的python實現