神经网络模型实现--------糖尿病病情预测问题
一、引入糖尿病病情预测问题的数据
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个神经元
扫描二维码关注公众号,回复:
17531502 查看本文章

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
小节:增加模型的隐层层数,神经原个数不一定会使评分升高。