- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
1 X9 }. k2 e$ w% x/ Uimport matplotlib.pyplot as plt
. x- J, ^6 S. |1 b) w+ D( }, Q5 K' D7 p/ o0 O$ e
import utilities
& g/ Y0 g& r1 D+ ?- `* g) B- w
3 V& @& }1 I" @0 @+ a" H/ c) `) G4 X# Load input data
9 c1 t/ L4 q# @! finput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
+ H. }- i g5 M/ P( x/ S4 \X, y = utilities.load_data(input_file)% `! f2 f3 v% P" {& o Q( }2 x! Y* k" [
9 f' e$ T2 A7 M, r. P# T###############################################4 i' L) y* l6 l) d
# Separate the data into classes based on 'y'. B! ^3 ^; m, s0 y$ X0 M/ a/ a1 {
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])2 `: ~* z# P" F9 @& ~
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1]) d( j4 V0 Q& i5 l1 D/ |
, C! t2 _6 \; M, _9 T4 X2 B
# Plot the input data
! p: A2 `9 u Iplt.figure()
! p1 t0 E8 k8 {+ Uplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
0 F! ~/ g7 I2 E- Z; bplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
% u% V0 h. _- C$ n$ F# Jplt.title('Input data')
% G8 N( c( e( C$ f! [
% X& N( s* D1 x4 L2 H7 ~3 {' Y& ^4 A###############################################8 J" R/ W! h' _. g" x1 c4 P
# Train test split and SVM training% n/ \1 S0 |. D
from sklearn import cross_validation% Z. s% R6 n& s
from sklearn.svm import SVC
5 A2 J! P C" A2 Y% G/ r% O# f7 t0 d V* R5 \, y
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
: Y7 i9 m9 y2 X8 L* \1 f2 O F
; L/ a( K3 d. Z+ @1 D7 d! R#params = {'kernel': 'linear'}. u& b& U0 q2 ]2 n
#params = {'kernel': 'poly', 'degree': 3}' S( R# D6 w0 _4 ^8 v7 ^
params = {'kernel': 'rbf'}
7 |9 `, h5 s4 T" ]1 w7 bclassifier = SVC(**params)
4 g9 X* }6 c. I$ s& `" Aclassifier.fit(X_train, y_train)
' v7 j. E! E2 l M7 ~utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
7 C: Q& B" N. t e' ~$ R+ D6 K) S
y_test_pred = classifier.predict(X_test)
, m) ]! C R# e1 w, mutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
$ _: {, J3 k2 O1 G
; m- a& s% U) l$ G7 d###############################################& n3 ~& z9 k- {) V, v: g/ w
# Evaluate classifier performance% C/ _, n' x- ]( P, D
( d9 {# |, x) s; S/ h. rfrom sklearn.metrics import classification_report9 j% d' w, g* E& X
! \, P" E0 a6 g% k% z
target_names = ['Class-' + str(int(i)) for i in set(y)]+ N \. m- L) |( m' Q& H
print "\n" + "#"*30
4 ~# d; `* d5 zprint "\nClassifier performance on training dataset\n"
- O4 w+ \8 y! `0 w6 v" A& }print classification_report(y_train, classifier.predict(X_train), target_names=target_names)6 v+ t+ w* |' ^4 y- Y4 ^
print "#"*30 + "\n"
' ?( ~/ b% E2 ?( L% O! Z" }9 C
r+ \6 `# `9 U8 |, }* X5 _print "#"*30
; w, U3 T+ w$ G |print "\nClassification report on test dataset\n"
6 X4 i2 |( ^6 M4 |2 r, F! C( }print classification_report(y_test, y_test_pred, target_names=target_names)
$ o! L( |4 I) |3 `! A; `; Cprint "#"*30 + "\n"
# k7 D/ S9 A9 @0 ~* m, w8 k { O& \7 D( U5 b* I1 s3 F% ?+ t
|
|