机器学习神经网络算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《人工智能与机器学习》
实验报告
年级__xxxx__________
专业________xxxxxx__________
学号____________631507xxxx___________
姓名_____________gllh________________
日期___________2018-5-25__
实验七神经网络算法
一、实验目的
1、要求掌握神经网络算法的基本原理、了解神经网络算法的执行过程。
2、在此基础上,利用多层神经网络算法对给定样本数据实现分类。
实验类型:验证性
计划课间:2学时
二、实验内容
1、了解神经网络算法的网络结构
2、了解神经网络的反向传播过程;
3、对给定样本数据选择合适的网络层数和神经元个数实现分类过程;
三、实验步骤
1、数据集读入
本实验选用男女生身高体重数据集:
在数据集中将女生划分为1,男生划分为2,如截图所示
sex = pd.read_csv('fafa.csv', names = ["height","weight","devided"]) sex.head()
sex.describe().transpose()
sex.shape
2、数据预处理,根据需要进行标准化,归一化处理
X = sex.drop('devided',axis=1)
y = sex['devided']
3、将数据集划分为训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(X, y)
scaler = StandardScaler()
scaler.fit(X_train)
4、利用训练数据构建模型
mlp = MLPClassifier(hidden_layer_sizes=(20,51,51),max_iter=5000) mlp.fit(X_train,y_train)
5、用测试数据评价模型的性能
predictions = mlp.predict(X_test)
总代码:
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report,confusion_matrix
def readdata(data):
sex = pd.read_csv(data, names = ["height","weight","devided"])
sex.head()
sex.describe().transpose()
sex.shape
X = sex.drop('devided',axis=1)
y = sex['devided']
X_train, X_test, y_train, y_test = train_test_split(X, y)
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
mlp = MLPClassifier(hidden_layer_sizes=(55, 55, 55),max_iter=5000) mlp.fit(X_train,y_train)
predictions = mlp.predict(X_test)
print(confusion_matrix(y_test,predictions))
print(classification_report(y_test,predictions))
print(len(mlp.coefs_))
print(len(mlp.coefs_[0]))
print(len(mlp.intercepts_[0]))
if __name__ =='__main__':
file='fafa.csv'
readdata(file)
实验结果:
四、实验结果分析
实验得出如下结果:
在实验中将最大迭代次数设为5000,
接下来我们创建一个模型的实例,可以自定义很多参数,只定义 hidden_layer_sizes 参数。此参数传入的是一个元组,表示计划在每个层的神经元数量,其中元组中的第55个元素表示 MLP 模型第55层中的神经元数量。有很多参数可供选择,但是为了简单起见,我们将选择具有相同数量神经元的2层神经网络,每层的神经元数量与数据的特征数相同(55),并将最大迭代次数设置为5000次。
即:
mlp = MLPClassifier(hidden_layer_sizes=(55,55,55),max_iter=5000)
[[30 10]
[ 2 40]]
precision recall f1-score support