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)


相关文章
|
4月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
128 0
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
396 0
|
4月前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
367 0
|
5月前
|
机器学习/深度学习 人工智能 算法
AP聚类算法实现三维数据点分类
AP聚类算法实现三维数据点分类
203 0
|
11月前
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
1032 70
|
9月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
259 31
|
9月前
|
机器学习/深度学习 资源调度 算法
基于入侵野草算法的KNN分类优化matlab仿真
本程序基于入侵野草算法(IWO)优化KNN分类器,通过模拟自然界中野草的扩散与竞争过程,寻找最优特征组合和超参数。核心步骤包括初始化、繁殖、变异和选择,以提升KNN分类效果。程序在MATLAB2022A上运行,展示了优化后的分类性能。该方法适用于高维数据和复杂分类任务,显著提高了分类准确性。
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
303 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
218 2
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
229 3