機器學習練習(一)-使用jupyter notebook
阿新 • • 發佈:2018-12-25
一個簡單的分類機器學習練習,基於sklearn。sklearn是Python中的一個機器學習模組。它其中有資料。非常方便我們用它來訓練機器學習的模型,和驗證我們的想法。(官方網站:https://scikit-learn.org/stable/)
使用jupyter notebook呢,能更清晰地幫我們看到每一步都做了什麼並且其中功能方便能讓我們隨時記錄下自己的想法。
首先第一步就是匯入我們所需要的模組。這裡有Python基礎的同學應該都明白,匯入模組以後我們才能繼續下面的工作。
#匯入所需要的模組 import numpy as np from sklearn importdatasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier #使用分類模組
然後我們把我們的資料定義一下。首先是將花的資料集載入,然後將花的資料定義為flower_x,花的結果,也就是目的,定義為flower_y
flower=datasets.load_iris() flower_X=yuan.data flower_y=yuan.target
看一下資料的基本資訊
print(yuan_X[:4,:])#看一下資料的基本資訊 [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2] [4.6 3.1 1.5 0.2]]
這些資訊是描述花的資料資訊,我們的分類就是要通過這些資訊的輸入,讓我們的機器學習模型可以自動的把這些不同資料的花分類。
print(yuan_y) [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]
這裡就會看到花是被分成三類的。
下面我們將資料集分為訓練集與測試集來使用。一部分用於訓練模型,一部分用於測試模型,驗證結果。
X_train,X_test,y_train,y_test = train_test_split(yuan_X,yuan_y,test_size=0.3) #把測試集與資料集按照3:7的形式分裂
knn = KNeighborsClassifier()
knn.fit(X_train,y_train)#用訓練集來訓練模型
下面我們來測試一下結果對比
print(knn.predict(X_test))#根據模型輸出用測試集的結果 [0 0 0 2 1 0 0 0 0 0 0 2 1 0 2 0 2 2 0 2 2 0 0 1 2 1 1 0 1 2 2 1 0 2 1 1 1 2 1 2 2 0 0 2 2]
實際的資料結果
print(y_test)#把真實的測試集拿出來做比較 [0 0 0 2 1 0 0 0 0 0 0 2 1 0 2 0 2 2 0 2 2 0 0 1 2 1 1 0 1 2 2 1 0 2 1 1 1 2 1 2 2 0 0 2 2]
由此可以見到,我們的模型預測還是十分準確的,這就是一個簡單的花的分類問題,也是一個簡單的機器學習應用。