机器学习学习笔记--分类鸢尾花数据集

markdown效果在这

https://www.zybuluo.com/Qinxianshen/note/990758

我们首先要理解什么叫做学习?人在学习的过程中,特别是遇到陌生的事物的时候,通常会观察新事物的特征

我们把各种特征用一个表画好

| 颜色鲜艳        | 外表黏滑  | 生长地湿润  | 花萼长度 | 花萼宽度 | 花瓣长度 | 花瓣宽度 |

| --------  | -----:  |-----:  | -----:  | -----:  | -----:  | -----:  | -----:  | -----:  | -----:  |  :----:  |

| 1    | 0 |  0    |  0  |  0  | 0 |  0 |

用0表示否

1表示是 来记录下事物的特征,把这些特征用一个向量组合好,然后每一个样本X对应一个标签Y,这个Y也用一个向量表示,表示是不是某一个新事物 当样本和标签多了,我们就可以对他进行训练,得到一个模型,这样以后我们就可以用这个模型对这一类事物进行分类或者预测

鸢尾花数据集(IRIS)是一个经典的数据集。

其中有150个样本,我们目标是分成三类,分别是山鸢、变色鸢尾、维基尼亚鸢。(target,也就是Y)

| 山鸢        | 变色鸢尾  | 维基尼亚鸢  |

| --------  | -----:  |-----:  | -----:  | -----:  | -----:  | -----:  | -----:  | -----:  | -----:  |  :----:  |

| 0    | 1 |  2    |

这些样本有4个的特征(Feature)四维 分别是花萼长度,宽度,花瓣长度,宽度

```python

import numpy as np # 快速操作结构数组的工具

import pandas as pd # 数据分析处理工具

import matplotlib.pyplot as plt # 画图工具

from sklearn import datasets # 机器学习库

#数据集 0-setosa、1-versicolor、2-virginica

scikit_iris = datasets.load_iris()

# 转换成pandas的DataFrame数据格式,方便观察数据

iris = pd.DataFrame(data=np.c_[scikit_iris['data'], scikit_iris['target']],

columns=np.append(scikit_iris.feature_names, ['y']))

iris.head(2)

# 选择全部特征训练模型

X = iris[scikit_iris.feature_names]

# label

y = iris['y']

# 第一步,选择model

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=1)

# 第二步,fit X、y

knn.fit(X, y)

# 第三步,predict新数据

knn.predict([[3, 2, 2, 5]])

from abupy import train_test_split

from sklearn import metrics

# 分割训练-测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4)

# K=15

knn = KNeighborsClassifier(n_neighbors=15)

knn.fit(X_train, y_train)

y_pred_on_train = knn.predict(X_train)

y_pred_on_test = knn.predict(X_test)

# print(metrics.accuracy_score(y_train, y_pred_on_train))

print('accuracy: :{}'.format(metrics.accuracy_score(y_test, y_pred_on_test)))

```

你可能感兴趣的:(机器学习学习笔记--分类鸢尾花数据集)