- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
- d8 B+ ~6 F& ]( m, n+ G3 Rimport matplotlib.pyplot as plt _; W; t$ n* G) |. a+ r
/ ?- x; N. w0 X y. x
import utilities % g0 k. ]( O% }* U6 y( E/ S
7 O) D* J0 c9 Y. {+ o
# Load input data
0 b/ J8 x1 B& ]' V. Hinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
9 P" U# e" o1 R$ FX, y = utilities.load_data(input_file)
; ]! I/ L3 g: B* ]4 @1 l; ] J3 m1 [' P2 I2 V
###############################################/ L) q& s3 a4 X7 C& h( K
# Separate the data into classes based on 'y'
1 l X0 ]/ E& N2 `class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0]); s) U6 ^' n$ K* K3 q$ z
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
2 H+ Y) I" F( {/ K
, ~: v0 R1 l, w* m* x# Plot the input data
' S/ ~# c5 q( m* o% \/ Splt.figure()( b( P+ z* ]: [8 p, q7 n+ m
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
$ C) y" W* E9 ?7 y$ ?& zplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')4 c$ }7 \3 w9 b. ~6 \. ?) A
plt.title('Input data')+ ~/ B6 e" q* e5 J% k
; \, f. V! W2 z5 ?' v+ }###############################################% r! F0 ~1 N9 Y1 L
# Train test split and SVM training
$ N% g& W9 D3 p2 q9 ?1 cfrom sklearn import cross_validation
+ ^# ~. N6 x' ^+ [from sklearn.svm import SVC2 J: i7 Q$ B, y# m8 c' t) }
. `! T( d; h0 w8 jX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5): `* N- }$ R6 ~
4 H2 ]. f4 p3 E) q! h+ T2 L$ E
#params = {'kernel': 'linear'}
! n' G) Q& M. }#params = {'kernel': 'poly', 'degree': 3}3 {; a: ?/ ~, U, W
params = {'kernel': 'rbf'}3 V0 }8 ^( W. O& d8 B( H4 I
classifier = SVC(**params)
" h# R2 |0 h# ]# o/ _; F6 Jclassifier.fit(X_train, y_train)% n- d7 R' k3 N" B) S" v
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')- t7 w( |5 {4 x! [ {+ U/ b
- D) A; k& L& W. _! V, a, ny_test_pred = classifier.predict(X_test)
) c" G2 S/ ]1 t: o* sutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
( S$ [. S) B3 [( z5 d; \" B ^) K7 S
J/ i' G7 h4 w x, w5 I }###############################################3 {( H5 P8 N) ]6 i" }) m. m
# Evaluate classifier performance& V6 k" h3 j: c! E5 L0 U5 @ q& r
4 C9 u) o$ S4 l- Mfrom sklearn.metrics import classification_report' _6 R' n: M0 {$ @1 f6 Q
' A: Q! U4 ?5 ~
target_names = ['Class-' + str(int(i)) for i in set(y)]2 v( z% ~3 C9 w- }
print "\n" + "#"*307 B; l6 J; T+ v9 C/ y- p x
print "\nClassifier performance on training dataset\n"3 g* o( }3 ~. `" ?! ] ]" G; D
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)9 E, Q/ I: G; ~+ J" m! `# b
print "#"*30 + "\n"
+ m B; f( l1 @; G0 [% H6 x
' j- A" M/ S6 Q: K/ [! aprint "#"*30; C! h: A- h4 R) w- ?
print "\nClassification report on test dataset\n"
* ]4 F* y5 p2 u" Z" d: I" Dprint classification_report(y_test, y_test_pred, target_names=target_names)
8 j# S) s6 \9 z# j- Qprint "#"*30 + "\n"; X8 N7 r. c! E) d
# ^0 H% {- y& n: B. w- U& d5 ` |
|