- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np9 }5 B3 I: Q( }! L# S8 f
import matplotlib.pyplot as plt
8 Z" @4 D3 A0 p0 M3 J/ n w8 k, t
3 J! k, y; q2 A1 jimport utilities
7 ]% R/ H" u5 J. l! D
" \7 `, ]4 `6 n! ?' N V& S s# Load input data
" z5 c; i& l) u' xinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
. @7 z( Z5 o. Z8 c! T" NX, y = utilities.load_data(input_file)
! _6 N O" k. ]1 @+ u3 z
/ U: J J- l& s; ~" a###############################################: W3 w. Z8 H+ d0 h I
# Separate the data into classes based on 'y'
7 J9 p5 o, W* X4 E4 U! [class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
3 P/ L2 J% {8 }* j2 @4 Oclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])' O# N$ V1 e# O" U) m/ p
5 H5 d& [, `. q
# Plot the input data
8 O. K$ t- K' B1 T) dplt.figure()
& c: Z% L# Z3 C! Iplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
: H& Q$ H: I" [' Rplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
) S+ K/ _2 ^5 D. R: @$ Hplt.title('Input data')- S3 h u# N8 T
/ Z% `( u" f" T h' T8 m1 }8 k###############################################+ T* V$ P- y% M9 K t7 ?! Y/ o
# Train test split and SVM training
' ~ q, ^0 E- `* o7 p7 ~1 dfrom sklearn import cross_validation4 `( K1 Z+ b! h4 ^
from sklearn.svm import SVC
" j1 l8 h' \& J0 e$ y/ _
O) V8 J9 q" q/ E9 y9 VX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)3 b# [" E* i9 u* o. z
8 f. d5 S( a# ~/ i7 e( T#params = {'kernel': 'linear'}
" @5 @8 m/ ]4 w0 d' C#params = {'kernel': 'poly', 'degree': 3}4 m& {- u# L5 H3 p0 g% b& L
params = {'kernel': 'rbf'}
, Q6 X" D+ j6 a5 K6 l0 Gclassifier = SVC(**params)
) ~5 i) w. B! k1 b+ Sclassifier.fit(X_train, y_train)
/ z7 J$ }9 {' G3 S/ u8 L0 C7 nutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')* q) N. R0 [2 K) v5 b) j
# S6 s; x: T, k- Y5 O8 Y( J' fy_test_pred = classifier.predict(X_test)6 |. P4 s: a0 K: s2 ?; P+ j3 d+ w
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')# t3 @ i# H/ v; C% f) r
4 \+ }* }0 J: I; ]###############################################
5 a$ t1 O' x5 ?# Evaluate classifier performance
Y9 o# l7 C s, @0 q* d. V. A9 B! c! S' D
from sklearn.metrics import classification_report# N& ~1 a7 ~, [2 F5 d* u u6 k4 }
) c0 C# S. q6 o/ ~; jtarget_names = ['Class-' + str(int(i)) for i in set(y)]
8 w: B3 s! H- {% P+ Fprint "\n" + "#"*30! M5 }. E& ^4 `. g2 V* p, _" E3 l
print "\nClassifier performance on training dataset\n"; F4 I5 J, R1 W( m
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
$ T& C( H; e7 c+ a9 [" bprint "#"*30 + "\n"8 |1 `0 {. p3 t8 r7 W* M9 n% s
4 M* y* X& I! Q. O) t) b6 Z( P- e
print "#"*30/ u% i# C2 E6 B# P" y
print "\nClassification report on test dataset\n"
# r! j! i& A/ kprint classification_report(y_test, y_test_pred, target_names=target_names)8 _* |% H9 o" S/ A
print "#"*30 + "\n"
% P7 Q4 l% z' V8 q4 }$ ]9 M# V- Q+ p* G1 p3 V2 T& i
|
|