打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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


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

基于iris莺尾花数据集利用Perceptron感知机算法实现二分类

设计思路

输出结果

<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

核心代码

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)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第120天:机器学习算法之 K 均值聚类
手把手教你学习R语言~
在R语言中对回归树模型、装袋算法与随机森林之间的简单比较
用R语言做数据分析——有权重的K最近邻算法
一个用R语言进行Kmeans聚类分析的例子
Iris flower data set
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服