感知器算法实现对山鸢尾花分类问题
简介
Perceptron.py
import numpy as np# 感知器算法
class Perceptron:def fit(self, X, y):m, n = X.shapew = np.zeros((n,1)) b = 0done = Falsewhile not done:done = Truefor i in range(m):x = X[i].reshape(1,-1)if y[i] * (x.dot(w) + b) <= 0:w = w + y[i] * x.Tb = b + y[i]done = False self.w = wself.b = bdef predict(self, X):return np.sign(X.dot(self.w) + self.b)
perceptron_iris.py
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from perceptron import Perceptron
import matplotlib.pyplot as pltiris = datasets.load_iris()
X= iris["data"][:,(0,1)]
y = 2 * (iris["target"]==0).astype(np.int) - 1
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=5)plt.figure(1)
plt.axis([4,8,1,5])
plt.plot(X_train[:, 0][y_train==1], X_train[:, 1][y_train==1], "bs", ms=3)
plt.plot(X_train[:, 0][y_train==-1], X_train[:, 1][y_train==-1], "yo", ms=3)model = Perceptron()
model.fit(X_train, y_train)plt.figure(2)
plt.axis([4,8,1,5])
plt.plot(X_train[:, 0][y_train==1], X_train[:, 1][y_train==1]+0.1, "bs", ms=3)
plt.plot(X_train[:, 0][y_train==-1], X_train[:, 1][y_train==-1]-0.1, "yo", ms=3)
x0 = np.linspace(4, 8, 200)
w = model.w
b = model.b
line = -w[0]/w[1] * x0 - b/w[1]
plt.plot(x0, line)plt.figure(3)
plt.axis([4,8,1,5])
plt.plot(X_test[:, 0][y_test==1], X_test[:, 1][y_test==1], "bs", ms=3)
plt.plot(X_test[:, 0][y_test==-1], X_test[:, 1][y_test==-1], "yo", ms=3)
x0 = np.linspace(4, 8, 200)
line = -w[0]/w[1] * x0 - b/w[1]
plt.plot(x0, line)plt.show()
运行截图
感知器算法实现对山鸢尾花分类问题相关推荐
- 感知器算法实现鸢尾花数据的分类
1.代码 1.算法描述 本博客使用感知器算法来实现鸢尾花数据的分类.因为感知器映射结果为1和-1,为了让感知器能够正常运行,我们舍去了映射类型为0的鸢尾花数据,保留了映射类型为1和-1的鸢尾花数据 ...
- 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题
本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...
- 人工智能学习笔记 感知器算法的设计实现 感知器准则实现多类分类
学习来源 感知器算法的设计实现 python_监心司的博客-CSDN博客 实验原理 实验内容 1. 数据生成及规范化处理 利用高斯模型,生成 N 类(N>5)数据(2D or 3D),并对生成样 ...
- 机器学习之感知器算法的设计实现(多分类)
本次实验旨在掌握感知器算法,利用它对输入的数据进行多类分类. 1.实验原理 1. 感知器基本原理 感知准则函数是五十年代由 Rosenblatt 提出的一种自学习判别函数生成方法,由于Rosenbla ...
- 神经网络感知器算法调整原理是什么
算法调整原理 如果点分类正确,则什么也不做. 如果点分类为正,但是标签为负,则分别减去 αp,αq, 和 α 至 w_1, w_2,w1,w2, 和 bb 如果点分类为负,但是标签为正,则分别将α ...
- 机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)
目录 一.神经元的数学模型 二.感知器算法(SVM算法前身) 1.目的 2.流程 >>>问题1:下图w和b的调整是什么意思? 3.算法的有效性验证 1)原算法 2)增广矩阵 3) ...
- 感知器算法(PLA)
PLA全称是Perceptron Linear Algorithm,简称PLA 原理 <统计学习基础> 李航 感知器是二分类的现行分类模型,其输入为实力的特征向量,输出为实例的类别,取+1 ...
- 线性判别函数(Python实现批感知器算法、Ho Kashyap算法和MSE多类扩展方法)——模式识别编程作业
文章目录 写在前面 批感知器算法 Ho Kashyap算法 MSE多类扩展方法 Ref. 写在前面 本博客为模式识别作业的记录,实现批感知器算法.Ho Kashyap算法和MSE多类扩展方法,可参考教 ...
- 感知器算法(Perceptron)
目录 引言 感知器 Matlab代码 效果展示 Python代码 效果展示 C++代码 效果展示 引言 本专栏第二个机器学习算法:感知器算法,全部代码通过Github下载,使用Matlab,Pytho ...
最新文章
- java正则表达式 1,Java正则表达式学习(1)
- Could not find com.android.support.constraint:constraint-layout的问题解决
- python读取大文件-使用Python读取大文件的方法
- linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...
- mysql 4 中文模糊查询_解决MySQL中文模糊查询问题
- 03-java学习-基本数据类型-运算符-键盘接收用户输入
- 淘宝JavaScript 编码风格规范
- 彻底讲明白浅拷贝与深拷贝
- Access数据库多表联合查询
- Android 4编程入门经典
- html怎么把正方形改成圆形,css如何把正方形变成圆形
- linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
- Photoshop图片变纯黑白无灰度
- 合成大西瓜html5游戏,关于html5:魔改和上线你的合成大西瓜最全教程
- 本地搭建Git服务器,两台电脑共享代码如此简单
- 成都绿源电动车店寻“新欢”,只这一试,我就认定了
- 一键重装系统后电脑黑屏怎么办,电脑系统重装黑屏
- Python模块之Pandas 格式化数据
- python十进制转化为二进制
- 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)章节一.doc...