机器学习教程之1-感知器(Perceptron)的sklearn实现
来源:互联网 发布:mac有的软件删不掉 编辑:程序博客网 时间:2024/06/05 05:30
0.概述
优点:
简单且易于实现
缺点:
1.感知器模型
如果数据是线性可分的,并且是二分类的,则可以以下函数模型表示输入到输出的关系:
2.感知器学习策略
将所有误分点到超平面距离之和表示为代价函数:
不考虑
,得到感知器的代价函数:
说明:李航的书用L(w,b)表示代价函数,而Ng教程用J()表示代价函数。
3.感知器学习算法
4.代码
# @Author: Tianze Tang# @Date: 2017-07-10# @Email: 454779758@qq.com# @Last modified by: Tianze Tang# @Last modified time: 2017-07-10import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport cv2import randomimport timefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scoreclass Perceptron(object): def __init__(self): self.learning_step = 1 self.max_iteration = 100000 def sign(self,x): if (x >= 0): logic=1 else: logic=0 return logic # w*x+b def threshold(self,w,b,x): result = np.dot(w ,x) + b; return result # train def train(self,x,y): w = np.zeros(len(x[0])) b = 0 i = 0 while (i<self.max_iteration): index = len(y) random_number = random.randint(0,index-1) if (y[random_number]* self.threshold(w,b,x[random_number])<= 0): w = w + self.learning_step * y[random_number]*x[random_number] b = b + self.learning_step * y[random_number] i = i + 1 return w,bx = np.array([[3,3],[4,3],[1,1]],dtype= int)y = np.array([1,1,-1])plt.plot([3,4],[3,3],'rx')plt.plot([1],[1],'b*')plt.axis([0,6,0,6])test = Perceptron()w,b=test.train(x,y)# w*x+b=0y1=(-b-w[0]*1)/w[1]x2=(-b-w[1]*1)/w[0]plt.plot([1,y1],[x2,1],'g')plt.show()
5.总结
6.参考资料
[1] 李航《统计学习方法》第二章——用Python实现感知器模型(MNIST数据集)
[2] Matplotlib Pyplot tutorial
阅读全文
0 0
- 机器学习教程之1-感知器(Perceptron)的sklearn实现
- 机器学习笔记1—感知器(Perceptron)
- 机器学习小白笔记-1-感知器(Perceptron)
- 机器学习-感知机perceptron
- 机器学习-感知机perceptron
- 机器学习-感知机perceptron
- 机器学习教程之9-SVM的sklearn实现
- 感知机perceptron-机器学习ML
- 机器学习教程之2-线性回归(linear regression)的sklearn实现
- 机器学习教程之3-逻辑回归(logistic regression)的sklearn实现
- 机器学习教程之2-k近邻模型的sklearn实现
- 机器学习教程之12-朴素贝叶斯(naive Bayes)法的sklearn实现
- 机器学习教程之13-决策树(decision tree)的sklearn实现
- 模式识别中感知器算法(Perceptron Approach)的实现
- 感知机(Perceptron)的python实现
- 【Python-ML】感知器学习算法(perceptron)
- Python机器学习(1)-- 自己设计一个感知机(Perceptron)分类算法
- 机器学习 - 感知机(PLA, Perceptron Learning Algorithm)
- SPOJ3267 D-Query 树状数组离线操作 或 主席树 查询某一区间内有多少不同的数
- MVC3获取登录用户名
- UVA 122 树的层次遍历
- APS.netMVC的ViewModel问题
- [资料]aspnetdb.mdf数据库的建立和使用
- 机器学习教程之1-感知器(Perceptron)的sklearn实现
- spring 集成定时任务
- Membership、MembershipUser和Roles类
- MVC --- 创建一个实例化类的函数
- logback
- MVC3 网站发布问题(转发)
- jquery 实现导航栏滑动效果
- 解决SQL Server 2008提示评估期已过
- 摩尔定律