※ 讀入訓練資料( 將訓練資料都放到變數 xx 中)¶
In [130]:
import numpy as np
import winreg
offset = 40
scale = 20
#取得桌面路徑
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
deskTop=winreg.QueryValueEx(key, "Desktop")[0]
x1 = np.loadtxt(deskTop+'/1.txt',delimiter=',',dtype='float')
print("已讀取 1 訓練資料共{}筆...".format(len(x1)))
x2 = np.loadtxt(deskTop+'/2.txt',delimiter=',',dtype='float')
print("已讀取 2 訓練資料共{}筆...".format(len(x1)))
x3 = np.loadtxt(deskTop+'/3.txt',delimiter=',',dtype='float')
print("已讀取 3 訓練資料共{}筆...".format(len(x1)))
# 將 x1,x2,x3 三個矩陣垂直合併
xx = np.vstack((x1,x2,x3))
※ 產生對應的答案標籤 yy¶
In [124]:
y1 = np.array([1]*len(x1))
y2 = np.array([2]*len(x2))
y3 = np.array([3]*len(x3))
yy = np.vstack((y1,y2,y3)).flatten()
print(yy)
※ 資料處理 (將xx 微分、平移、縮放)¶
In [125]:
#資料對時間微分
xx_ = xx[:,2:]
dX =xx[:,:-2] - xx[:,2:]
xx = dX
#資料平移與縮放
xx = (xx+offset)/scale
print('samples(訓練樣本)')
print(xx)
print('labels(訓練樣本對應的答案標籤)')
print(yy)
※ 訓練階段: 有了訓練資料 xx 及對應的標準答案 yy 就可以餵給模型學習了¶
In [126]:
from sklearn.svm import SVC
clf=SVC()
#clf=SVC(probability=True)
clf.fit(xx,yy)
Out[126]:
※ 測試階段:讀入測試資料,經過資料處理後 加以辨識¶
In [131]:
test=np.loadtxt(deskTop+'/TEST_123.txt',delimiter=',',dtype='float')
dTest =test[:,:-2] - test[:,2:]
test = dTest
test = (test+offset)/scale
print(clf.predict(test[0:10,:]))
print(clf.predict(test[10:20,:]))
print(clf.predict(test[20:30,:]))