神经网络模型实现

神经网络模型实现--------糖尿病病情预测问题


一、引入糖尿病病情预测问题的数据

 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

小节:增加模型的隐层层数,神经原个数不一定会使评分升高。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值