[Python]初心者筆記13(機器學習:準備分類的資料、作假資料,透過SVM做分類)

[Python]初心者筆記13(機器學習:準備分類的資料、作假資料,透過SVM做分類)

準備分類的資料:(就是作假資料的意思拉)

#進行數據分析之前常要引用的函式庫
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

#宣告四個點(以二維陣列的方式宣告)
x = np.array([[-3,2],[-6,5],[3,-4],[2,-8]])
#四個點依序分類為第一類、第一類、第二類、第二類
y = np.array([1,1,2,2])

#如此一來便可以畫出四個點,且分成兩個類別
plt.scatter([-3,-6,3,2],[2,5,-4,-8],c=[1,1,2,2])

#但是可以簡化為這樣
plt.scatter(x[:,0],x[:,1], c=y)

#還可以用s=50參數,讓曲線圖上的點看起來大一些
plt.scatter(x[:,0],x[:,1], s=50 , c=y)


然後透過SVM支援向量機做分類:
 

#進行數據分析之前常要引用的函式庫
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

#先把上次課程的分類資料再做一次出來
#宣告四個點(以二維陣列的方式宣告)
x = np.array([[-3,2],[-6,5],[3,-4],[2,-8]])
#四個點依序分類為第一類、第一類、第二類、第二類
y = np.array([1,1,2,2])

#還可以用s=50參數,讓曲線圖上的點看起來大一些
plt.scatter(x[:,0],x[:,1], s=50 , c=y)

#匯入SVM支持向量機函式庫的分類功能SVC
from sklearn.svm import SVC

#然後要開一台SVC
clf = SVC()

#開始訓練:clf.fit(輸入資料,正確答案)
clf.fit(x,y)

#隨便取一個剛才的點來測試一下預測是否成功
#注意這裡的predict的參數需代入array, 因此參數才會寫成[ [-3,2] ]
#output將會得到array([1]),表示預測結果這個點在分類1,預測成功!
clf.predict([[-3,2]])

#正式的把四個點全部代入
#順利得到分類答案(陣列形式的答案):array([1, 1, 2, 2])
#ps.當然會順利得到正確答案,因為剛剛透過clf.fit()訓練時,已經有先給答案了 = ="
#成功!
clf.predict(x)

#當然也可以用一些隨機的資料來測試predict結果
#將會得到系統自動預測的分類結果
clf.predict([[2.5,3]])

參考資料:
成為python數據分析達人的第一課(自學課程)
http://moocs.nccu.edu.tw/course/123/intro