从零开始机器学习 第1篇 一个感知机的实现

本文通过Python示例代码展示了如何使用鸢尾花数据集(Iris dataset),选取花瓣长度和花萼长度两个特征对鸢尾花进行分类。通过可视化结果可以看出不同种类鸢尾花之间的明显区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 训练数据集:Iris dataset (鸢尾花数据集),获取网址https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

如下图所示,鸢尾花数据集中每行数据前四列为特征值分别是花瓣长/宽、花萼长/宽,鸢尾花分三类:Setosa,Versicolor,Virginica

   

 

 

 

可以用如下示例代码保存数据集并显示最后5行

1 import pandas as pd
2 df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)
3 df.tail()

 

通过对数据集中的鸢尾花四个特征值,对数据集分类,确定属于哪一类的鸢尾花,这里选取前100个数据分析,示例代码如下:

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 import pandas as pd
 4 
 5 df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)
 6  7 
 8 # select setosa and versicolor
 9 y = df.iloc[0:100, 4].values
10 y = np.where(y == 'Iris-setosa', -1, 1)
11 
12 # extract sepal length and petal length
13 X = df.iloc[0:100, [0, 2]].values
14 
15 # plot data
16 plt.scatter(X[:50, 0], X[:50, 1],
17             color='red', marker='o', label='setosa')
18 plt.scatter(X[50:100, 0], X[50:100, 1],
19             color='blue', marker='x', label='versicolor')
20 
21 plt.xlabel('sepal length [cm]')
22 plt.ylabel('petal length [cm]')
23 plt.legend(loc='upper left')
24 
25 plt.tight_layout()
26 
27 plt.show()

输出结果如下:

通过对四个特征中两个(花瓣长,花萼长)的统计,可以看到蓝色和红色有了明显的界限,实现了分类。

转载于:https://www.cnblogs.com/fox17/p/6266669.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值