- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
/ ^! |" b4 H; O& Kimport matplotlib.pyplot as plt
" F+ D% [; N, r$ D4 c6 c
4 } g6 z3 E) A: z' z' N0 B2 z/ Gimport utilities
( R+ W! r5 g5 L& v$ Q, a# v7 N1 i9 q, a; V8 Q1 S
# Load input data
* Z* H. i" F/ pinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
0 E V: U9 _% }; v4 @X, y = utilities.load_data(input_file)3 k1 u( \7 M2 |+ ]* L# t6 |
' P: T$ V; W, O, M# E
###############################################
3 Q( V+ l* [7 t% n. \# Separate the data into classes based on 'y'
% d4 T/ H( Z! [. T9 \# vclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
8 B# L9 L* b# o! [class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])$ R; Y9 g' U! r6 B" g/ B+ P$ y
0 u0 r% C8 a, w: ^2 N( V8 d2 S) V# Plot the input data/ D8 ~8 H( I1 Q
plt.figure()
0 s& G5 X+ w$ e0 vplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
/ B [. s5 B" D3 ^. F% w) e8 x5 iplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
) }- F2 N( b6 o8 R; jplt.title('Input data')( \/ [* l6 L# C5 l0 ^, I( Y
- Z, k: h5 J1 y) v4 k3 O1 a
###############################################5 M6 `# B+ Z) B$ Q8 J/ j
# Train test split and SVM training
! Y# h$ j2 O* X" c& K1 o3 ^from sklearn import cross_validation! ~+ {& V9 E! J2 e3 p2 {
from sklearn.svm import SVC' ^# n3 J3 e6 n
; ?; s0 x% R* |& DX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)+ P C& a5 |% ], b h3 ], S# I
; j' }& p8 i5 q1 E' k/ K/ h; [#params = {'kernel': 'linear'}- o$ N2 t1 I6 o' U, b
#params = {'kernel': 'poly', 'degree': 3}0 r0 J4 m& f" A0 ]' {( ~
params = {'kernel': 'rbf'}6 }3 z5 M% ]1 v. j9 |
classifier = SVC(**params)! @9 P; s3 k8 g3 A% f
classifier.fit(X_train, y_train)4 S) I$ m; v9 }. x0 e% U0 V
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
7 u0 ?' Z5 d2 s% F
9 A U$ m. k: J* r N( U' Yy_test_pred = classifier.predict(X_test)
! }" c; d2 {6 \utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
% P/ T/ I$ Z9 V4 s/ F- n$ K
* r; N, s; k7 T###############################################& C. d. G: `2 m; A
# Evaluate classifier performance
* z% V( V: E2 q$ O" j! j; u5 M
1 ~! a& j' j# m9 Xfrom sklearn.metrics import classification_report. y/ n# r- L. A0 W5 X" p/ ~9 o
$ S5 R- n, I( a( S4 Xtarget_names = ['Class-' + str(int(i)) for i in set(y)]
3 Z6 J7 ^" p, wprint "\n" + "#"*30
4 g# v6 e" Z8 o) P, |3 c5 wprint "\nClassifier performance on training dataset\n"
0 v' L. C# u4 k( s: x; J; X Dprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)
+ Z) [1 X: d" a" x# ]print "#"*30 + "\n"8 W0 F, ~( N* f' H5 z# g
, `+ D' G; h e- g8 U" `1 S( [print "#"*30
( ]7 b5 Z1 e! } U3 ^2 eprint "\nClassification report on test dataset\n"
/ M7 ^9 T7 m+ x+ _' ?# t1 I {print classification_report(y_test, y_test_pred, target_names=target_names), |% e; t4 H0 {- f8 t
print "#"*30 + "\n"( j# n/ `; G; @) W7 s
0 l `" l: Q$ A$ {# _ |
|