# -*- 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. SVG.js 文本绘制整理
  2. DPDK — CLI 指令行模块
  3. Scala入门到精通——第十七节 类型参数(一)
  4. 将MyEclipse项目导入到Eclipse中
  5. 中国科学家突破二氧化碳人工合成淀粉技术
  6. Helgrind:螺纹错误检测器
  7. A person close to Foxit Zhang Quan told AI
  8. matlab线性同余发生器,线性同余法生成伪随机数
  9. 深度学习论文翻译解析(二十):YOLOv4: Optimal Speed and Accuracy of Object Detection
  10. 「mt4软件」均线指标的应用方法
  11. windows计算机操作题,计算机等级考试Windows操作题
  12. Bootstrap框架——栅格系统
  13. CSS控制多行文本省略--显示省略号
  14. Unity--内置转换矩阵
  15. zsh : corrupt history file ~/.zsh_history
  16. JS面向对象三大特性
  17. PW4056H充电芯片,1A可调充电
  18. 嵌入式系统工程专业就业方向与前景分析
  19. python介绍和用途-Python简介
  20. Chameleon 手動安裝說明 + Chameleon 2 RC5 Rev580

热门文章

  1. linux系统硬盘数据恢复软件下载,Linux硬盘数据恢复软件
  2. mysql编写完怎么执行_面试官:一条MySQL更新语句是如何执行的?
  3. python链表添加多个值_Python基础10之数据结构(下)
  4. laravel框架中文手册_Laravel框架的这些你都懂的话,它核心架构基本就懂了
  5. 树形DP入门题目推荐以及解析
  6. 论CSS样式的使用以及常用属性
  7. linux服务器last查看关机记录
  8. C# CheckBox与RadioButton
  9. 模块化和组件化的定义以及两者的区别
  10. 项目 cmdb(一)