第5关:神经网络分类模型及其应用
为了完成本关任务,你需要掌握:1.数据获取及训练样本构建,2.预测样本的构建,3神经网络回归模型构建,4.利用MLPClassifier创建神经网络分类对象clf
数据获取及训练样本构建
读取data.xlsx表数据,在 5.2 基础上,取数据集前 600 条记录作为训练数据
- #取数据集前 600 条记录作为训练数据
- x=df.iloc[:600,:15].values
- y=df.iloc[:600,15].values
输出:
预测样本的构建
在 5.2 基础上,取数据集后 90 条记录作为测试
- #后 90 条记录作为测试
- x1=df.iloc[600:,:15].values
- y1=df.iloc[600:,15].values
输出:
神经网络分类模型构建
构建神经网络模型,输出其模型准确率和预测准确率。 先导入神经网络分类模块MLPClassifier,再调用clf对象中三个方法,其中分别为fit()方法进行网络训练;score ()方法,获得神经网络的预测准确率,这是针对训练数据;调用clf对象中的predict()方法可以对测试样本进行预测,获得预测结果。
- #导入神经网络回归模块MLPRegressor。
- from sklearn.neural_network import MLPClassifier
- #调用clf对象中的fit()方法进行网络训练。
- clf.fit(x, y)
- #调用clf对象中的score ()方法,获得神经网络回归的拟合优度(判决系数)。
- rv=clf.score(x,y)
- #调用clf对象中的predict()可以对测试样本进行预测,获得预测结果。
- R=clf.predict(x1)
- #计算准确率
- Z=R-y1
- Rs=len(Z[Z==0])/len(Z)
- print('模型准确率为:',rv)
- print('预测结果准确率为:',Rs)
输出:模型准确率为: 0.895
预测结果准确率为: 0.8444444444444444
利用MLPClassifier创建神经网络分类对象clf
MLPClassifier创建神经网络分类对象clf,其中需要用到的参数有很多 参数说明: solver:神经网络优化求解算法,包括lbfgs、sgd、adam 3种,默认值为adam。 alpha:模型训练误差,默认值为0.0001。 hidden_layer_sizes:隐含层神经元个数,如果是单层神经元,设置具体数值即可,本例中隐含层有两层,即5×2。 random_state:默认设置为0即可。 max_iter:设置最大迭代次数。
- clf = MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(5,2), random_state=0, max_iter=1000)
编程要求
根据提示,在右侧编辑器补充代码,实现神经网络分类模型构建。
测试说明
平台会对你编写的代码进行测试。
开始你的任务吧,祝你成功!
任务代码
#********** Begin **********# #在上一关基础,对经过缺失值填充、数值变量标准化后的数据集,取前600条记录作为训练数据,后90条记录作为测试数据 #构建神经网络分类模型,返回计算结果模型准确率rv和预测准确率r def return_values(): import numpy as np import warnings # 忽略收敛警告 warnings.filterwarnings("ignore") #导入神经网络回归模块MLPRegressor。 from sklearn.neural_network import MLPClassifier X1=np.load('X1.npy') #经过缺失值填充、数值变量标准化后的数据集,numpy数组690*15 Y=np.load('Y.npy') #因变量,numpy数组,690个元素 x = X1[:600,:] y = Y[:600] x1 = X1[600:,:] y1 = Y[600:] clf = MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(5,2), random_state=0, max_iter=1000) clf.fit(x,y) rv=clf.score(x,y) R=clf.predict(x1) Z=R-y1 r=len(Z[Z==0])/len(Z) #print('模型准确率为:',r) #print('预测准确率为:',r) return(rv,r) #********** End **********#