- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
4 K) H$ D. O: L7 n) O4 x5 a) zimport matplotlib.pyplot as plt9 @9 t2 n+ W/ R* C* w- x0 E
8 v* j' z( [ |8 b7 }0 k$ limport utilities
+ M1 ?# W: R9 n7 ?2 y9 X t2 o2 h4 P8 U
# Load input data4 H. [7 X& X) h h/ t3 _
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'5 k) r2 S1 K9 s8 F* M$ x" E9 C
X, y = utilities.load_data(input_file)' i9 X1 L+ Z+ U4 l0 p: j& p
. w& V/ u3 V! E2 B1 F###############################################3 [# d: V0 C' i: G: R4 ]
# Separate the data into classes based on 'y') o. b% J7 i' o- l- l9 G; e1 l
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
. D' T0 P# z! c2 b8 Z5 Z4 [$ e; Kclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1]): B: I- @6 Y/ o) t5 x. K' e
* y& o; Z, H! F1 _6 I
# Plot the input data5 Z, `! L U0 L; g" ~
plt.figure()! C6 e5 t/ Q3 _2 b
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
+ s; [! X Y9 S4 k# H+ z, W4 \, Cplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
* U) J; ?& I/ P6 z# h0 M# Aplt.title('Input data')7 W$ _2 x. K3 G* t# I* d1 l
" | L2 X/ X( b
###############################################0 }" j1 {* j& z& k0 n/ ^
# Train test split and SVM training
- e1 ?- y. n+ E, X/ Ffrom sklearn import cross_validation" V+ U& y! `4 o; ^' J; S0 d
from sklearn.svm import SVC
/ U# X3 r) L. K! H. i `- N
2 X7 c' o2 G* P5 ]- RX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)) u% Z; X& c" j7 x4 m- U& |* a
) T7 i) _" q1 m2 V( X, n
#params = {'kernel': 'linear'}
. \- w) e6 P$ u$ M7 r#params = {'kernel': 'poly', 'degree': 3}
: ?8 z7 V5 p4 [ ^params = {'kernel': 'rbf'}
0 r' ]+ S+ ~1 w5 rclassifier = SVC(**params)/ ]' E6 A8 {) ~! l: n
classifier.fit(X_train, y_train)
% h* s1 Z" d4 Z6 s" sutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
( k0 e! V) ?/ k5 a7 W# P* x
) X: E$ e5 R6 \y_test_pred = classifier.predict(X_test)
+ \- \+ v! S4 Xutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')3 F* M0 B" F, r& ]
/ b: T1 K/ @; p _
###############################################
1 Z" k4 [% {9 |# Evaluate classifier performance& Q5 N5 S+ G" w) i, k _
7 h& T3 D n4 v" f! y: h3 Bfrom sklearn.metrics import classification_report' u, p, i0 t4 B1 f# Q
$ D, j; Q; J1 W! rtarget_names = ['Class-' + str(int(i)) for i in set(y)]
! @' b. U9 U3 b2 tprint "\n" + "#"*30$ ]$ A6 V- c, a$ h Z# i
print "\nClassifier performance on training dataset\n"( c. X: Y* y y) B9 [4 v5 e
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
) a+ A- u" }9 r. R6 m' T" z9 h% q# xprint "#"*30 + "\n"2 G9 m y- O y- {' ?
* G: q: n! P& ]- Y8 i
print "#"*306 E3 r9 P1 Y: e
print "\nClassification report on test dataset\n"8 ~( X# ^* x8 b$ e* |* J% _( @
print classification_report(y_test, y_test_pred, target_names=target_names)
$ O* \9 w4 O% cprint "#"*30 + "\n"/ a! j- W- j3 {% _
5 m3 l0 V* L5 X4 d/ z) k' O+ p |
|