機(jī)器學(xué)習(xí)學(xué)習(xí)筆記--分類鳶尾花數(shù)據(jù)集

markdown效果在這

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

我們首先要理解什么叫做學(xué)習(xí)?人在學(xué)習(xí)的過程中,特別是遇到陌生的事物的時(shí)候,通常會(huì)觀察新事物的特征

我們把各種特征用一個(gè)表畫好

| 顏色鮮艷? ? ? ? | 外表黏滑? | 生長地濕潤? | 花萼長度 | 花萼寬度 | 花瓣長度 | 花瓣寬度 |

| --------? | -----:? |-----:? | -----:? | -----:? | -----:? | -----:? | -----:? | -----:? | -----:? |? :----:? |

| 1? ? | 0 |? 0? ? |? 0? |? 0? | 0 |? 0 |

用0表示否

1表示是 來記錄下事物的特征,把這些特征用一個(gè)向量組合好,然后每一個(gè)樣本X對(duì)應(yīng)一個(gè)標(biāo)簽Y,這個(gè)Y也用一個(gè)向量表示,表示是不是某一個(gè)新事物 當(dāng)樣本和標(biāo)簽多了,我們就可以對(duì)他進(jìn)行訓(xùn)練,得到一個(gè)模型,這樣以后我們就可以用這個(gè)模型對(duì)這一類事物進(jìn)行分類或者預(yù)測(cè)

鳶尾花數(shù)據(jù)集(IRIS)是一個(gè)經(jīng)典的數(shù)據(jù)集。

其中有150個(gè)樣本,我們目標(biāo)是分成三類,分別是山鳶、變色鳶尾、維基尼亞鳶。(target,也就是Y)

| 山鳶? ? ? ? | 變色鳶尾? | 維基尼亞鳶? |

| --------? | -----:? |-----:? | -----:? | -----:? | -----:? | -----:? | -----:? | -----:? | -----:? |? :----:? |

| 0? ? | 1 |? 2? ? |

這些樣本有4個(gè)的特征(Feature)四維 分別是花萼長度,寬度,花瓣長度,寬度

```python

import numpy as np # 快速操作結(jié)構(gòu)數(shù)組的工具

import pandas as pd # 數(shù)據(jù)分析處理工具

import matplotlib.pyplot as plt # 畫圖工具

from sklearn import datasets # 機(jī)器學(xué)習(xí)庫

#數(shù)據(jù)集 0-setosa、1-versicolor、2-virginica

scikit_iris = datasets.load_iris()

# 轉(zhuǎn)換成pandas的DataFrame數(shù)據(jù)格式,方便觀察數(shù)據(jù)

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

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

iris.head(2)

# 選擇全部特征訓(xùn)練模型

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新數(shù)據(jù)

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

from abupy import train_test_split

from sklearn import metrics

# 分割訓(xùn)練-測(cè)試集

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)))

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容