首先我们对Iris数据集(鸢尾花数据集)进行简单介绍:
- 它分为三个类别,即Iris setosa(山鸢尾)、Iris versicolor(变色鸢尾)和Iris virginica(弗吉尼亚鸢尾),每个类别各有50个实例。
- 数据集定义了五个属性:sepal length(花萼长)、sepal width(花萼宽)、petal length(花瓣长)、petal width(花瓣宽)、class(类别)。
- 最后一个属性一般作为类别属性,其余属性为数值,单位为厘米。
鸢尾花数据集在sklearn中有保存,我们可以直接使用库中的数据集,也可以在这个网站对鸢尾花进行下载。
1、首先导入相应的库和数据
from sklearn import datasets # 存放鸢尾花数据
from sklearn.cluster import KMeans # 机器学习模型
import matplotlib.pyplot as plt
import pandas as pd
iris = datasets.load_iris()
iris_X = iris.data # 花朵属性
iris_y = iris.target # 花朵类别
print(iris_X[:3])
# [[5.1 3.5 1.4 0.2]
# [4.9 3. 1.4 0.2]
# [4.7 3.2 1.3 0.2]
print(iris_y)
# [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
# 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
# 2 2]
我们可以看到,花朵属性总共为4列,分别对应sepal length(花萼长)、sepal width(花萼宽)、petal length(花瓣长)、petal width(花瓣宽),这里我们只取了3行出来;类别我们分为了3类,分别对应了0、1、2.
2、取部分特征作散点图
plt.scatter(iris_X[:50,2],iris_X[:50,3],label='setosa',marker='o')
plt.scatter(iris_X[50:100