笔记:机器学习入门---鸢尾花分类
Sklearn 本身就有很多数据库,可以用来练习。 以 Iris 的数据为例,这种花有四个属性,花瓣的长宽,茎的长宽,根据这些属性把花分为三类:山鸢尾花Setosa、变色鸢尾花Versicolor、韦尔吉尼娅鸢尾花Virginica
。sklearn iris数据包含植物学家已经进行了分类鉴定的150朵不同的鸢尾花,我们也可以对每一朵鸢尾花进行准确测量得到花萼花瓣的数据。
Code:
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris=datasets.load_iris()
iris_X=iris.data
iris_Y=iris.target
# print(iris.feature_names)
# print(iris.target_names)
# print(iris.target_names[iris.target[0]])
# print(iris_X)
print(iris_Y)
# 把150条数据分为训练集(135条)和测试集(条),其中的为 test_size=0.1,即测试集占总数据的10%
X_train, X_test, y_train, y_test = train_test_split(
iris_X, iris_Y, test_size=0.1)
print(len(X_train))
print(len(X_test))
# 建立模型-训练-预测
# 定义模块方式 KNeighborsClassifier(), 用 fit 来训练 training data
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print(knn.predict(X_test))
print(y_test)
Result:
[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]
135
15
[1 0 1 1 0 2 1 0 2 1 2 1 2 2 1]
[1 0 1 1 0 2 1 0 2 1 2 1 2 2 1]