Sklearn模块
- 无监督:cluster(聚类)、decomposition(因子分解)、mixture(高斯混合模型)、neural_network(无监督的神经网络)、covariance(协方差估计)
- 有监督:tree(决策树)、svm(支持向量机)、neighbors(近邻算法)、linear_model(广义线性模型)、neural_network(神经网络)、kernel_ridge(岭回归)、naive_bayes(朴素贝叶斯)
- 数据转换:feature_extraction(特征提取)、feature_selection(特征选择)、preprocessing(预处理)
感知器与神经网络
- 感知器:处理线性可分问题
- 神经网络:可用于非线性回归、分类等多种机器学习
神经网络
- MLPClassifier 是基于多层前馈网络的分类器
- 缺点在于解释器本身,无法解释权重和偏置项与数据特征之间的关系(参数是调出来的,拟合的结果)
# 读取数据
import pandas as pd
df = pd. read_csv ('iris.data', header = None)
df. columns = ['sepal lenth', 'sepal width', 'petal lenth', 'petal width', 'class']
df. head()
# 数据预处理,将分类数据转为数值型数据
df. loc[df ['class'] == 'Iris-setosa', 'class'] = 0
df. loc[df ['class'] == 'Iris-versicolor', 'class'] = 1
df. loc[df ['class'] == 'Iris-virginica', 'class'] = 2
# 数据准备,转为 int、float 数值类型
y = df ['class']. values. astype(int)
x = df [['sepal lenth', 'sepal width', 'petal lenth', 'petal width']]. values. astype(float)
# 划分数据集,导入 model_selection
from sklearn import model_selection
x_train, x_test, y_train, y_test = model_selection. train_test_split (x, y, test_size = 0.3, random_state = 1)
# 创建分类器,导入 neural_network
from sklearn import neural_network
mlp = neural_network. MLPClassifier (solver = 'lbfgs', alpha = 1e-5, hidden_layer_sizes = (5,5), random_state = 1)
# 训练模型
mlp. fit(x_train, y_train)
# 测试集上评分
mlp. score (x_test, y_test)
# 测试集上性能评估,导入 metrics
from sklearn import metrics
y_test_pred = mlp. predict (x_test)
report = metrics. classification_report (y_test, y_test_pred)
matrix = metrics. confusion_matrix (y_test, y_test_pred)
print ('分类报告:\n', report)
print ('混淆矩阵:\n', matrix)
感想
- 神经网络:类似神经元结构的模型,使用 sklearn 里的 neural_network 模块
- 机器学习:区分测试集和训练集的方法,使用 sklearn 里的 model_selection 模块
- 性能评估:类似模型评价,使用 sklearn 里的 metrics 模块
-END
标签:network,neural,df,class,神经网络,科学技术,test,书籍 From: https://www.cnblogs.com/peitongshi/p/17204357.html