机器学习神经网络算法.docx
文本预览下载声明
《人工智能与机器学习》实 验 报 告年级__ 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.shape2、数据预处理,根据需要进行标准化,归一化处理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 pdfrom sklearn.preprocessing import StandardScalerfrom sklearn.neural_network import MLPClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import classification_report,confusion_matrixdef 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(ercepts_[0]))if __name__ ==__main__: file=fafa.csv readdata(file)实验结果:四、实验结果分析实验得出如下结果:在实验中将最大迭代次数设为5000,接下来我们创建一个模型的实例,可以自定义很多参数,只定义 hidden_layer_sizes 参数。此参数传入的是一个元组,表示计划在每个层的神经元数量,其中元组中的第55个元素表示 MLP 模型第55层中的神经元数量。有很多参数可供选择,但是为了简单起见,我们将选择具有相同数量神经元的2层神经网络,每层的神经元数量与数据的特征数相同(55),并将最大迭代次数设置为 5000次。即:mlp = MLPClassifier(hidd
显示全部