# -*- coding: utf-8 -*-
'''
Created on 2018年1月12日
@author: Jason.F
@summary: Scikit-Learn库感知器学习算法
'''from sklearn import datasets
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import Perceptron
from sklearn.metrics import accuracy_score
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
#数据导入
iris=datasets.load_iris()
X=iris.data[:,[2,3]]
y=iris.target
print (np.unique(y))
#训练集和测试集划分
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)
#标准化
sc=StandardScaler()
sc.fit(X_train)#计算样本的均值和标准差
X_train_std=sc.transform(X_train)
X_test_std=sc.transform(X_test)
#感知器分类
ppn=Perceptron(n_iter=40,eta0=0.1,random_state=0)#迭代次数、学习速率、重排训练集
ppn.fit(X_train_std,y_train)
#模型预测
y_pred=ppn.predict(X_test_std)
print ('Accuracy:%.2f' %accuracy_score(y_test,y_pred))#准确率
#绘制决策边界
def plot_decision_regions(X,y,classifier,test_idx=None,resolution=0.02):# 设置标记点和颜色markers = ('s','x','o','^','v')colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')cmap = ListedColormap(colors[:len(np.unique(y))])# 绘制决策面x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),np.arange(x2_min, x2_max, resolution))Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)Z = Z.reshape(xx1.shape)plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)plt.xlim(xx1.min(), xx1.max())plt.ylim(xx2.min(), xx2.max())#绘制所有样本X_test,y_test=X[test_idx,:],y[test_idx]for idx,cl in enumerate(np.unique(y)):plt.scatter(x=X[y==cl,0],y=X[y==cl,1],alpha=0.8,c=cmap(idx),marker=markers[idx],label=cl)#高亮预测样本if test_idx:X_test,y_test =X[test_idx,:],y[test_idx]plt.scatter(X_test[:,0],X_test[:,1],c='',alpha=1.0,linewidths=1,marker='o',s=55,label='test set')
X_combined_std=np.vstack((X_train_std,X_test_std))
y_combined=np.hstack((y_train,y_test))
plot_decision_regions(X=X_combined_std, y=y_combined, classifier=ppn, test_idx=range(105,150))
plt.xlabel('petal length[standardized]')
plt.ylabel('petal width[standardized]')
plt.legend(loc='upper left')
plt.show()

结果:

[0 1 2]
Accuracy:0.91

【Python-ML】SKlearn库感知器(perceptron) 使用相关推荐

  1. 基于 iris 数据集采用感知器 Perceptron 实现线性二分类

    基于 iris 数据集采用感知器 Perceptron 实现线性二分类 题目简述: 基于 iris 数据集(四个特征,三个类别),选取两个特征和两个类别,采用感知器 Perceptron 实现线性二分 ...

  2. Python安装sklearn库时出现异常:ERROR: Could not install packages due to an EnvironmentError: [Errno 2]

    文章目录 一.问题描述 二.问题解决 一.问题描述 今天在学习python机器学习时,需要安装python的sklearn库,在安装的过程中出现了以下错误 上CSDN上找了好多文章,都没办法解决问题 ...

  3. 感知器(perceptron)模型分析及实现

    感知器模型分析及实现 1. 感知器模型 2. 几何意义 3. 感知器模型的训练 4. 批处理训练过程 4.1 训练数据的规范化 4.2 批处理感知器算法 实现代码 \qquad 感知器 (percep ...

  4. sklearn训练感知器用iris数据集

    简化版代码 1 from sklearn import datasets 2 import numpy as np 3 4 #获取data和类标 5 iris = datasets.load_iris ...

  5. 【Python-ML】SKlearn库线性回归器LinearRegression

    # -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有监督回归学习-基于最小二乘法构建线性回归模型 ...

  6. 感知器 Perceptron

    基本概念 线性可分:在特征空间中可以用一个线性分界面正确无误地分开两 类样本:采用增广样本向量,即存 在合适的增广权向量 a 使得: 则称样本是线性可分的.如下图中左图线性可分,右图不可分.所有满足条 ...

  7. 用Python的sklearn库进行PCA(主成分分析)

    在python的sklearn的库里面集成很多机器学习算法的库,其中也包括主成分分析的方法. 1.PCA算法的原理: PCA主要是用来数据降维,将高纬度的特征映射到低维度的特征,加快机器学习的速度.比 ...

  8. ID3决策树 Python实现 + sklearn库决策树模型的应用

    本文介绍机器学习中决策树算法的python实现过程 共介绍两类方法: (1)亲手实习Python ID3决策树经典算法 (2)利用sklearn库实现决策树算法 关于决策树的原理,指路:机器学习 第四 ...

  9. 【模式识别】感知器 Perceptron

    基本概念 线性可分:在特征空间中可以用一个线性分界面正确无误地分开两 类样本:采用增广样本向量,即存 在合适的增广权向量 a 使得: 则称样本是线性可分的.如下图中左图线性可分,右图不可分.所有满足条 ...

最新文章

  1. 让学习linux变成一种习惯
  2. Android 开发, Android 安全 精品资料收集
  3. 七、Go 语言面向对象编程
  4. webstorm 2018 破解
  5. 转一篇写的比较好的camera文档[Camera 图像处理原理分析]
  6. 四、Spring中使用@Conditional按照条件注册Bean
  7. Tennis Game CodeForces - 496D(唯一分解定理,费马大定理)
  8. 微信“农场”偷偷上线!网友:偷菜还会远吗 QQ被抄麻了
  9. List、Map、Set 三个接口,存取元素时的特点
  10. UE4之wgs84坐标系
  11. 苹果系统备份文件服务器地址,IOS备份到tftp服务器和升级IOS
  12. 软件需求说明书模板和实际案例
  13. 0xFFFF中的0x是什么意思
  14. SQL 事务 begin tran、commit tran、rollback tran 的用法
  15. 用 “类别混搭” 法实现移动游戏的创新
  16. Android(15)——ButterKnife
  17. 微信公众号每日早安推送,给女朋友的浪漫礼物
  18. C语言中void cpy,关于C/C++ void指针,使用void指针拷贝int 数组
  19. Linux下替换文件中的字符串
  20. GO WEB IRIS入门 安装iris

热门文章

  1. java i数据类型_数据类型 I
  2. java 线程不运行时间_java如何设置线程运行时间吗
  3. Java 10.switch语句
  4. Elasticsearch 因拷贝多余的jar到lib库导致无法启动的问题
  5. maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释
  6. easyui 行编辑修改
  7. 确定msm8937+android7.1采用的dtb文件
  8. Android启动过程深入解析
  9. vs2005编译DNW050A
  10. 回溯法基本思想_数据结构之简单的回溯算法