神經網路模型實現

2021-10-25 10:17:33 字數 4881 閱讀 1304

一、引入糖尿病病情**問題的資料

from sklearn.datasets import load_diabetes

diabets=load_diabetes()

二、對資料進行劃分,同時對屬性值進行轉換

x=diabets.data

y=diabets.target

from sklearn.model_selection import train_test_split #引入分片模組

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=32)

from sklearn.preprocessing import standardscaler #引入屬性轉換模組

xs=standardscaler()

xs.fit(x_train)

輸出:standardscaler(copy=true, with_mean=true, with_std=true)

x_train=xs.transform(x_train)

x_test=xs.transform(x_test) #對屬性值進行轉換

三、引入神經網路模型(分類)並進行訓練和**

①隱層層數為1,一層100個神經元

from sklearn.neural_network import mlpclassifier

clf=mlpclassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100),random_state=5)

clf.fit(x_train,y_train)

輸出:

mlpclassifier(activation='relu', alpha=1e-05, batch_size='auto', beta_1=0.9,

beta_2=0.999, early_stopping=false, epsilon=1e-08,

hidden_layer_sizes=100, learning_rate='constant',

learning_rate_init=0.001, max_iter=200, momentum=0.9,

nesterovs_momentum=true, power_t=0.5, random_state=5, shuffle=true,

solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=false,

warm_start=false)

clf.predict(x_test)

輸出:

array([202., 184.,  98.,  68.,  59.,  91., 242., 143., 202., 142.,  63.,

263., 277., 53., 71., 181., 71., 182., 257., 146., 210., 111.,

43., 124., 137., 265., 220., 293., 277., 321., 293., 97., 173.,

66., 64., 99., 91., 306., 160., 98., 233., 143., 51., 42.,

98., 103., 140., 59., 99., 161., 66., 111., 263., 277., 102.,

92., 140., 66., 91., 140., 275., 293., 129., 168., 178., 180.,

262., 60., 92., 49., 277., 151., 277., 128., 181., 83., 181.,

120., 83., 66., 64., 196., 144., 245., 104., 63., 77., 47.,

151., 275., 78., 196., 107., 128., 83., 140., 53., 168., 140.,

84., 60., 245., 195., 103., 293., 55., 262., 306., 60., 53.,

186., 97., 196., 94., 140., 84., 183., 68., 91., 98., 91.,

63., 59., 214., 198., 68., 48., 98., 171., 161., 310., 64.,

200.])

clf.score(x,y)
輸出:

0.01809954751131222
②隱層層數為1,一層1000個神經元

clf=mlpclassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(1000),random_state=5)

clf.fit(x_train,y_train)

clf.predict(x_test)

clf.score(x,y)

輸出:

0.013574660633484163
③隱層層數為1,一層10000個神經元

clf=mlpclassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(10000),random_state=5)

clf.fit(x_train,y_train)

clf.predict(x_test)

clf.score(x,y)

輸出:

0.013574660633484163
④隱層層數為2,一層100個神經元

clf=mlpclassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100,100),random_state=5)

clf.fit(x_train,y_train)

clf.predict(x_test)

clf.score(x,y)

輸出:

0.013574660633484163
⑤隱層層數為3,一層100個神經元

clf=mlpclassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100,100),random_state=5)

clf.fit(x_train,y_train)

clf.predict(x_test)

clf.score(x,y)

輸出:

0.013574660633484163
四、引入神經網路模型(回歸)並進行訓練和**

①隱層層數為1,一層100個神經元

from sklearn.neural_network import mlpregressor

clf=mlpregressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100),random_state=5)

clf.fit(x_train,y_train)

clf.score(x,y)

輸出:

0.5752407606575551
②隱層層數為1,一層1000個神經元

clf=mlpregressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(1000),random_state=5)

clf.fit(x_train,y_train)

clf.score(x,y)

輸出:

0.5619017692047168
③隱層層數為1,一層10000個神經元

clf=mlpregressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(10000),random_state=5)

clf.fit(x_train,y_train)

clf.score(x,y)

輸出:

0.5577797129300099
④隱層層數為2,一層100個神經元

clf=mlpregressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100,100),random_state=5)

clf.fit(x_train,y_train)

clf.score(x,y)

輸出:

0.5392360541382879
⑤隱層層數為2,一層100個神經元

clf=mlpregressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(100,100),random_state=5)

clf.fit(x_train,y_train)

clf.score(x,y)

輸出:

0.557065308006742
小節:增加模型的隱層層數,神經原個數不一定會使評分公升高。

神經網路模型

神經網路往往不需要人為的構造資料特徵,因為乙個神經元就可以看做是原始資料的不同特徵的組合,在神經元數目足夠大,層數足夠多的情況下,是很容易準確的進行分類的.神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應 神經元模型 m p神經元模...

神經網路 python實現神經網路

神經網路系列目錄 神經網路 神經網路原理介紹 bp演算法 神經網路 sklearn引數介紹及應用 神經網路實戰 主播綜合評分回歸 實戰 最小二乘法 梯度下降法區別及python實現 本篇博文通過python 實現神經網路,採用sklearn自帶的手寫數字集,看分類情況如何 一 匯入資料集並標準化 資...

神經網路語言模型

基於計數的n gram語言模型 出現的問題 1 資料稀疏,有些資料未出現過 2 忽略語義的相關性,如 無聊 與 枯燥 雖然語義相似,但無法共享資訊。詞語表示為 one hot表示法。基於分布式表示的n gram語言模型 出現的問題 1 詞向量 如何將每個詞對映到實數向量空間中的乙個點 2 f函式的設...