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]