天天看點

機器學習入門——Iris問題

Iris是一個經典的機器學習入門資料集,本片部落格将講述如何使用該資料集,用極其簡單的代碼來實作一個簡單的機器學習的例子。

本文适合有一丢丢python基礎的同學學習

實驗需求:安裝好 anaconda(這家夥自帶了很多科學計算的module,是機器學習必備神器)

本資料集可在網站:​​​https://en.wikipedia.org/wiki/Iris_flower_data_set#Data_set​​ 檢視,當然導入資料集并不需要這麼麻煩,稍後會講解。

預備知識

機器學習的步驟大緻分為3步:

1、導入資料集

2、通過資料集建立決策樹

3、使用資料進行預測

準備工作:

首先打開anaconda的spyder,并建立python檔案準備寫代碼。

正式開始:

導入資料集:并不需要去網上下載下傳,或者粘貼複制,很麻煩的,直接從庫裡導入就好了。

from sklearn.datasets import load_iris

iris = load_iris()      

這時資料集已經儲存到變量 ​

​iris​

​​ 中了,​

​iris​

​​是什麼類型呢?

​​

​type(iris)​

​​輸出為 ​

​sklearn.utils.Bunch​

資料集中共有資料150組,花的品種共有三種,每一朵花的特征有四個,每一個品種的資料分别都是50組。

這時我們需要從資料集中選出3組資料,用來最後的測試,且這3組資料不用來作為決策樹的訓練資料,僅用于最後的測試。

代碼如下:

import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
#test_idx是測試資料的下标
test_idx = [0,50,100]

#訓練資料,train_target是結果,train_data是特征
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)

#測試資料
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]      

接下來就是建立決策樹了

import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree

iris = load_iris()



test_idx = [0,50,100]

#training data
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)

#testing data
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]

#建立決策樹
clf = tree.DecisionTreeClassifier()
clf.fit(train_data,train_target)      

決策樹建立好後,我們就可以來測試機器學習的正确性如何了,是以在最後加上如下兩行代碼:

print(test_target)
print(clf.predict(test_data))      

第一行代碼用來輸出測試資料的正确結果,第二行代碼輸出決策樹學習之後預測的結果

[0 1 2]
[0 1 2]      

繼續閱讀