简介

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和-1,为了让感知器能够正常运行,我们舍去了映射类型为0的鸢尾花数据,保留了映射类型为1和-1的鸢尾花数据 ...

  2. 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题

    本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...

  3. 人工智能学习笔记 感知器算法的设计实现 感知器准则实现多类分类

    学习来源 感知器算法的设计实现 python_监心司的博客-CSDN博客 实验原理 实验内容 1. 数据生成及规范化处理 利用高斯模型,生成 N 类(N>5)数据(2D or 3D),并对生成样 ...

  4. 机器学习之感知器算法的设计实现(多分类)

    本次实验旨在掌握感知器算法,利用它对输入的数据进行多类分类. 1.实验原理 1. 感知器基本原理 感知准则函数是五十年代由 Rosenblatt 提出的一种自学习判别函数生成方法,由于Rosenbla ...

  5. 神经网络感知器算法调整原理是什么

    算法调整原理 如果点分类正确,则什么也不做. 如果点分类为正,但是标签为负,则分别减去 αp,αq, 和 α 至 w_1, w_2,w1​,w2​, 和 bb 如果点分类为负,但是标签为正,则分别将α ...

  6. 机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)

    目录 一.神经元的数学模型 ​ 二.感知器算法(SVM算法前身) 1.目的 2.流程 >>>问题1:下图w和b的调整是什么意思? 3.算法的有效性验证 1)原算法 2)增广矩阵 3) ...

  7. 感知器算法(PLA)

    PLA全称是Perceptron Linear Algorithm,简称PLA 原理 <统计学习基础> 李航 感知器是二分类的现行分类模型,其输入为实力的特征向量,输出为实例的类别,取+1 ...

  8. 线性判别函数(Python实现批感知器算法、Ho Kashyap算法和MSE多类扩展方法)——模式识别编程作业

    文章目录 写在前面 批感知器算法 Ho Kashyap算法 MSE多类扩展方法 Ref. 写在前面 本博客为模式识别作业的记录,实现批感知器算法.Ho Kashyap算法和MSE多类扩展方法,可参考教 ...

  9. 感知器算法(Perceptron)

    目录 引言 感知器 Matlab代码 效果展示 Python代码 效果展示 C++代码 效果展示 引言 本专栏第二个机器学习算法:感知器算法,全部代码通过Github下载,使用Matlab,Pytho ...

最新文章

  1. java正则表达式 1,Java正则表达式学习(1)
  2. Could not find com.android.support.constraint:constraint-layout的问题解决
  3. python读取大文件-使用Python读取大文件的方法
  4. linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...
  5. mysql 4 中文模糊查询_解决MySQL中文模糊查询问题
  6. 03-java学习-基本数据类型-运算符-键盘接收用户输入
  7. 淘宝JavaScript 编码风格规范
  8. 彻底讲明白浅拷贝与深拷贝
  9. Access数据库多表联合查询
  10. Android 4编程入门经典
  11. html怎么把正方形改成圆形,css如何把正方形变成圆形
  12. linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
  13. Photoshop图片变纯黑白无灰度
  14. 合成大西瓜html5游戏,关于html5:魔改和上线你的合成大西瓜最全教程
  15. 本地搭建Git服务器,两台电脑共享代码如此简单
  16. 成都绿源电动车店寻“新欢”,只这一试,我就认定了
  17. 一键重装系统后电脑黑屏怎么办,电脑系统重装黑屏
  18. Python模块之Pandas 格式化数据
  19. python十进制转化为二进制
  20. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)章节一.doc...

热门文章

  1. 2020中信银行信用卡中心校招数据挖掘分析岗一面凉经
  2. Excel的某列拼成逗号分隔的字符串
  3. 【网络协议从入门到底层原理】【00】课程大纲_互联网与网络协议
  4. c语言const字符串,C语言之正确使用const
  5. 视听融合综述(一)Audiovisual Fusion: Challenges and New Approaches
  6. VsCode配置ARM环境
  7. mac在前端配置的坑
  8. Unity 双指旋转
  9. 计算机谱子佛系少女,佛系少女简谱-冯提莫-听完仿佛整个人都变年轻了
  10. Mesh BRep Shapes