SVMのサポートベクターマシンの実装、トレーニングおよび分類(ラベル)

後のサポートベクターマシンのスタートコードチュートリアルのSVMの原理を理解してください。

特定の分類の考えは、非常に明確に指摘しています。

1 アイデア分類器2 どのように?最適な分類超平面探している3 の核を:ライン4 のデータ:サンプル5 訓練列車がSVM_createの予測
#のSVMは、本質的に最適な分類超平面求めている
#のSVMの核:ライン
#の身長と体重トレーニング予測
インポートCV2の
インポートnumpyのをAS NP 
インポートmatplotlib.pyplot AS PLTの1 の調製男の子と女の子の二つのクラスのデータ・サンプル・データ、身長および体重を調製
RAND1 = np.array([ 15548 ]、[ 15950 ]、[ 164は53れています ]、[ 16856である ]、[ 17260 ]])
RAND2 = np.array([ 15253である ]、[ 15655 ]、[ 160は56である ]、[ 17264 ]、[ 17665 ]]) 
2 タグ・ラベル(および0.1)
ラベル = np.array([[ 0 ]、[ 0 ]、[ 0 ]、[ 0 ]、[ 0 ]、[ 1 ]、[ 1 ]、[ 1 ]、[ 1 ] [ 1 ])
3 データ
データ = np.vstack((RAND1、RAND2))
データ = np.array(データ、DTYPE = ' のfloat32 ' 

SVM位は、すべてのデータラベル有していなければならない
#[ 15548 - ] 0女の子[ 152を53 ] --- 1人の  男の子
#学習-supervised 0陰性サンプル1つの陽性サンプル
4 トレーニング
SVM = cv2.ml.SVM_create()#mlの機械学習モジュールSVM_create()を作成するため
に#プロパティ
(cv2.ml.SVM_C_SVCをsvm.setTypeをタイプの)#1 SVM 
svm.setKernel(cv2.ml.SVM_LINEAR)#ライン
svm.setC(0.01 
#トレーニング
結果 = svm.train(データ、cv2.ml.ROW_SAMPLE、ラベル)
#予測
pt_data = np.vstack([ 167は55 [、] 16257である ]])#0 少女1人の少年
pt_data = NP .ARRAY(pt_data、DTYPE = ' のfloat32 ' 
印刷(pt_data)
(PARl、PAR2) = svm.predict(pt_data)
印刷(PAR2)

 

おすすめ

転載: www.cnblogs.com/Jack-Elvis/p/11278973.html