sklearn神经网络分类
sklearn神经网络分类
神经网络学习能力强大,在数据量足够,隐藏层足够多的情况下,理论上可以拟合出任何方程。
理论部分
sklearn提供的神经网络算法有三个:
neural_network.BernoulliRBM,neural_network.MLPClassifier,neural_network.MLPRgression
我们现在使用MLP(Multi-Layer Perception)做分类,回归其实也类似。该网络由三部分组成:输入层、隐藏层、输出层,其中隐藏层的个数可以人为设定。神经网络学习之后的知识都存在每一层的权重矩阵中,学习的过程也就是不断训练权重达到拟合的效果。权重训练比较常用的方法是反向传递(Backpropagation)
分类代码
#coding=utf-8
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.neural_network import MLPClassifier
import numpy as np
from sklearn.preprocessing import StandardScalerdef main():iris = datasets.load_iris() #典型分类数据模型#这里我们数据统一用pandas处理data = pd.DataFrame(iris.data, columns=iris.feature_names)data['class'] = iris.target#这里只取两类data = data[data['class']!=2]#为了可视化方便,这里取两个属性为例scaler = StandardScaler()X = data[['sepal length (cm)','sepal width (cm)']]scaler.fit(X)#标准化数据集X = scaler.transform(X)Y = data[['class']]#划分数据集X_train, X_test, Y_train, Y_test =train_test_split(X, Y)mpl = MLPClassifier(solver='lbfgs',activation='logistic')mpl.fit(X_train, Y_train)print 'Score:\n',mpl.score(X_test, Y_test) #score是指分类的正确率#区域划分h = 0.02x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, h),np.arange(y_min, y_max, h))Z = mpl.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, cmap=plt.cm.Paired)#做出原来的散点图class1_x = X[Y['class']==0,0]class1_y = X[Y['class']==0,1]l1 = plt.scatter(class1_x,class1_y,color='b',label=iris.target_names[0])class2_x = X[Y['class']==1,0]class2_y = X[Y['class']==1,1]l2 = plt.scatter(class2_x,class2_y,color='r',label=iris.target_names[1])class3_x = X[Y['class']==2,0]class3_y = X[Y['class']==2,1]l3 = plt.scatter(class3_x,class3_y,color='g',label=iris.target_names[2])plt.legend(handles = [l1, l2,l3], loc = 'best')plt.grid(True)plt.show()if __name__ == '__main__':main()
测试结果
转载于:https://www.cnblogs.com/fanghao/p/7533385.html
sklearn神经网络分类相关推荐
- 深度学习原理—代码分析线性分类与神经网络分类的区别
https://www.toutiao.com/a6687727778487337476/ 利用sklearn.dataset随机产生数据,随机生成两类数据,用不同的颜色展示出来,如下图: 产生的随机 ...
- TensorFlow2.0(二)--Keras构建神经网络分类模型
Keras构建分类模型 1. tf.keras简介 2. 利用tf.keras构建神经网络分类模型 2.1 导入相应的库 2.2 数据读取与展示 2.3 数据归一化 2.4 构建模型 2.5 模型的编 ...
- python机器学习库sklearn——神经网络
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...
- 小白量化彩票实战(7)用sklearn神经网络预测彩票号码和特征
小白量化彩票实战(7)用sklearn神经网络预测彩票号码和特征 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待.兴趣是学习最大的动力! 神经网络是目前比较热门的技术,人工神 ...
- 【机器学习】百度飞桨AI Studio平台项目:基于卷积神经网络分类方法的人脸颜值打分
基于卷积神经网络分类方法的人脸颜值打分 说在前面 实验数据 解决过程 1.Precondition 2.Dataset Preparation 3.Network Configuration 4.Mo ...
- 利用循环神经网络生成唐诗_【机器学习】【期末复习】闲聊神经网络 分类
类似于人脑的一种神经递质,有一个信号经过一系列传到有一个输出(单线).既然是网络,应该就是一堆上述带有输入输出的线构成的网络吧. reference: 一文看懂四种基本的神经网络架构www.jian ...
- 对神经网络分类行为的认识二则
分类与自旋 "每一种粒子都具有一个固定的自旋值,永远不变,粒子从来不存在开始转得更快或更慢;以ћ作为度量单位, 宇宙中每个光子的自旋等于每个希格斯玻色子的自旋等于零;自旋是粒子的固有属性,不 ...
- 用神经网络分类矩阵和矩阵的转置
设A是一个9*9的随机矩阵,让矩阵的每个格子都是一个0到1之间的随机数.A^T是矩阵A的转置.测试集由1000个A和A^T组成,这个网络是否可以收敛并分类? 在收敛误差δ一致的前提下,实验统计了7组收 ...
- 一个与神经网络分类特征旋转不变性有关的实验
继续用<用神经网络分类两条夹角为θ的直线>的办法分类两条直线. y=x*tanθ和y=x*tan(θ+20) 所不同的是这次让两条直线之间的夹角固定为20,让θ分别等于0,20...340 ...
最新文章
- Android Scroll分析
- abap 调用外部web service 使用小结
- jersey tomcat MySQL_tomcat web容器中,调用jersey client端报错的处理
- ob 接oracle10时接不上怎么办?
- Typesafe公司正式更名为Lightbend公司
- brew安装_解决安装brew报的curl的443错误
- html5音乐播放时间监测,html5 video如何实现实时监测当前播放时间(代码)
- 静态路由的不通配置方式
- Win11如何设置滚动条 Win11滚动条设置教程
- 我的第一篇cnds文章
- 1.4亿在线背后-QQ IM后台架构的演化与启示(1)(2)
- linux文件增加自定义属性,Linux 笔记...文件和目录属性useradd、userdel、usermod 、passwd...
- 期货与期权的主要区别与联系?
- 使用exe4j打包javafx项目
- MybatisPlus乐观锁配置
- 【NX2023/1847】UG软件安装详细指南教程
- 程序猿怎么利用技术挣钱?——python量化实践
- Asia's pollution exodus: Firms struggle to woo top talent 逃离亚洲空气污染:企业难以吸引顶尖人才
- 有N步台阶,每次可以走1步或者2步,计算有多少种走法
- 利用R ggplot2包进行数据可视化(一)