感知机学习算法 python实现
参考李航《统计学习方法》 一开始的感知机章节,看着不太复杂就实现一下。。。
"""
感知机学习算法的原始形式
例2.1
"""
import numpy as np class Perceptron:
def __init__(self,w,b,alpha):
self.w = w
self.b = b
self.alpha = alpha def loss(self,x,y):
return np.sum( y*(np.dot(x, self.w) + self.b) ) def sgd(self,x,y): # 随机梯度下降函数
self.w += self.alpha * y * x
self.b += self.alpha * y def train(self,X,Y):
while(True):
M = len(X) # 错误分类数
for i in range(len(X)):
if self.loss(X[i],Y[i])<=0:
self.sgd(X[i],Y[i])
print "w:",self.w," b:",self.b
else:
M -= 1
if not M:
print "final optimal:","w:",self.w," b:",self.b
break class Perceptron_dual:
def __init__(self,alpha,b,ita):
self.alpha = alpha
self.b = b
self.ita = ita def gram(self,X):
return np.dot(X,X.T) def train(self,X,Y):
g = self.gram(X) M = len(X) # 错误分类数
while(True):
M = len(X) # 错误分类数
for j in range(len(X)):
if Y[j] * (np.sum(self.alpha * Y * g[j]) + self.b) <= 0:
self.alpha[j] += self.ita
self.b += self.ita * Y[j]
print "a:",self.alpha," b:",self.b
else:
M -= 1
if M == 0:
print "final optimal:","a:",self.alpha," b:",self.b
break if __name__ == "__main__": X = np.array([[3,3],[4,3],[1,1]]) Y = np.array([1,1,-1])
perc_d = Perceptron_dual(np.zeros(Y.shape),0,1)
perc_d.train(X, Y)
感知机学习算法 python实现的更多相关文章
- 【机器学习】感知机学习算法(PLA)
感知机问题学习算法引入:信用卡问题 根据已知数据(不同标准的人的信用评级)训练后得出一个能不能给新客户发放信用卡的评定结果 解决该问题的核心思想扔为之前所讲到的梯度下降算法,对于更多条件的类似问题,首 ...
- 感知机学习算法(PLA)
Perception Learning Algorithm, PLA 1.感知机 感知机是一种线性分类模型,属于判别模型. 感知机模型给出了由输入空间到输出空间的映射: f(X) = sign(WTX ...
- 感知机学习算法Java实现
感知机学习算法Java实现. Perceptron类用于实现感知机, 其中的perceptronOriginal()方法用于实现感知机学习算法的原始形式: perceptronAnother()方法用 ...
- 利用Python实现一个感知机学习算法
本文主要参考英文教材Python Machine Learning第二章.pdf文档下载链接: https://pan.baidu.com/s/1nuS07Qp 密码: gcb9. 本文主要内容包括利 ...
- 吴裕雄 python 机器学习——人工神经网络感知机学习算法的应用
import numpy as np from matplotlib import pyplot as plt from sklearn import neighbors, datasets from ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- 【数据结构与算法Python版学习笔记】引言
学习来源 北京大学-数据结构与算法Python版 目标 了解计算机科学.程序设计和问题解决的基本概念 计算机科学是对问题本身.问题的解决.以及问题求解过程中得出的解决方案的研究.面对一 个特定问题,计 ...
- win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)
在计算机视觉和机器学习方向有一个特别好用但是比较低调的库,也就是dlib,与opencv相比其包含了很多最新的算法,尤其是深度学习方面的,因此很有必要学习一下.恰好最近换了一台笔记本,内含一块GTX1 ...
- 精选 TOP45 值得学习的Python项目
精选 TOP45 值得学习的Python项目 [导读]热门资源博客 Mybridge AI 比较了 18000 个关于 Python 的项目,并从中精选出 45 个最具竞争力的项目.我们进行了翻译,在 ...
随机推荐
- 一个app中保持程序全屏的方法。
public void toggleFullscreen(boolean fullScreen) { //fullScreen为true时全屏 WindowManager.LayoutParams a ...
- POJ 1979 Red and Black dfs 难度:0
http://poj.org/problem?id=1979 #include <cstdio> #include <cstring> using namespace std; ...
- POJ 3522 Slim Span 最小生成树,暴力 难度:0
kruskal思想,排序后暴力枚举从任意边开始能够组成的最小生成树 #include <cstdio> #include <algorithm> using namespace ...
- centos 升级 python后 python-setuptools pip 安装依赖报错
解决办法: $ wget https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.p ...
- STL-算法
#include <algorithm> 1. max_element(v.begin(), v.end()); 注意,所有的区间全部是半开区间,如果数组包含20-40,通过find找出2 ...
- Program A-归并排序
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...
- Spring学习笔记之模块简介
1.Core Container(Application context) module 这个是Spring最基本的模块,它提供了spring框架最基本的功能.BeanFactory 是任何基于Spr ...
- typedef定义函数类型或函数指针
转载请标明出处: 最近在看redis的代码,发现了有关函数指针的部分,想把它记下来. 在redis中有类似下面的定义,利用typedef 定义了一个新的类型,这种类型是一个函数: typedef vo ...
- git——学习笔记(二)远程仓库
GIT杀手锏之一——远程仓库 拥有远程仓库的两个办法 1:搭一个Git服务器 2:在GitHub上免费托管的Git仓库 本地仓库 远程仓库 一.在GitHub上免费托管的Git仓库 电脑: 1. ...
- (转)ASP.NET(C#) 读取EXCEL ——另加解决日期问题
使用OLEDB可以对excel文件进行读取,我们只要把该excel文件作为数据源即可. 一 在D盘创建excel文件test.xls: 二 将工作表Sheet1的内容读取到DataSet string ...