DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类

简介: DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类

设计思路

image.png


输出结果

<bound method DataFrame.info of      SepalLength_cm  SepalWidth_cm  ...  PetalWidth_cm           label

0               5.1            3.5  ...            0.2     Iris-setosa

1               4.9            3.0  ...            0.2     Iris-setosa

2               4.7            3.2  ...            0.2     Iris-setosa

3               4.6            3.1  ...            0.2     Iris-setosa

4               5.0            3.6  ...            0.2     Iris-setosa

..              ...            ...  ...            ...             ...

145             6.7            3.0  ...            2.3  Iris-virginica

146             6.3            2.5  ...            1.9  Iris-virginica

147             6.5            3.0  ...            2.0  Iris-virginica

148             6.2            3.4  ...            2.3  Iris-virginica

149             5.9            3.0  ...            1.8  Iris-virginica

[150 rows x 5 columns]>

  SepalLength_cm  SepalWidth_cm  ...  PetalWidth_cm            label

0             5.0            3.5  ...            0.3      Iris-setosa

1             6.3            2.5  ...            1.9   Iris-virginica

2             4.4            3.0  ...            0.2      Iris-setosa

3             5.7            2.8  ...            1.3  Iris-versicolor

4             6.8            3.2  ...            2.3   Iris-virginica

[5 rows x 5 columns]

Iris-setosa        50

Iris-versicolor    50

Iris-virginica     50

Name: label, dtype: int64

(150, 2)

[5, 0, 0, 0, 0, 0, 0, 0, 0, 0]

CE_res (37, 0, 0, 0)

recall   precision   accurency

1.0 1.0 1.0


image.png

image.png

image.png


核心代码

class Perceptron(object):

  def __init__(self, rate = 0.01, niter = 10):

     self.rate = rate

     self.niter = niter

  def fit(self, X, y):

     self.weight = np.zeros(1 + X.shape[1])

     self.errors = []  # Number of misclassifications

     for i in range(self.niter):

        err = 0

        for xi, target in zip(X, y):

           delta_w= self.rate * (target-self.predict(xi))

           self.weight[1:] += delta_w * xi

           self.weight[0] += delta_w

           err += int(delta_w != 0.0)

        self.errors.append(err)

     return self

  def net_input(self, X):

     return np.dot(X, self.weight[1:]) + self.weight[0]

  def predict(self, X):

     return np.where(self.net_input(X) >= 0.0, 1, -1)


相关文章
|
1月前
|
机器学习/深度学习 算法 数据库
KNN和SVM实现对LFW人像图像数据集的分类应用
KNN和SVM实现对LFW人像图像数据集的分类应用
34 0
|
14天前
|
机器学习/深度学习 自然语言处理 算法
|
7天前
|
机器学习/深度学习 算法 数据可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
13 0
|
1月前
|
XML 机器学习/深度学习 算法
目标检测算法训练数据准备——Penn-Fudan数据集预处理实例说明(附代码)
目标检测算法训练数据准备——Penn-Fudan数据集预处理实例说明(附代码)
33 1
|
1月前
|
机器学习/深度学习 自然语言处理 搜索推荐
推荐系统的算法分类和操作流程介绍
推荐系统的算法分类和操作流程介绍
|
1月前
|
机器学习/深度学习 算法
机器学习与深度学习的算法分类
机器学习与深度学习的算法分类
|
2月前
|
算法 测试技术 C++
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
|
2月前
|
机器学习/深度学习 自然语言处理 算法
如何利用机器学习算法提高分类准确率
【2月更文挑战第7天】机器学习在现代科技中扮演着重要的角色。分类是其中一种基本的机器学习任务,而分类准确率是衡量分类模型好坏的重要指标。本文将介绍如何利用机器学习算法来提高分类准确率。
25 0
|
2月前
|
机器学习/深度学习 存储 算法
【模式识别】探秘分类奥秘:K-近邻算法解密与实战
【模式识别】探秘分类奥秘:K-近邻算法解密与实战
37 0
|
2月前
|
机器学习/深度学习 算法 数据可视化
【模式识别】探秘分类奥秘:最近邻算法解密与实战
【模式识别】探秘分类奥秘:最近邻算法解密与实战
40 0