- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np) M$ B9 j5 \( C3 P) A: L
import matplotlib.pyplot as plt
& r' k7 I% N, N* ]. g
8 D: I0 L- e7 ?import utilities
1 d7 d0 E. p8 L
$ \ [% a4 y& @ z @+ X% |# Load input data
4 X3 r9 O4 a' Y# x6 R+ ?input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
" ^$ Y( \, y7 o4 a3 D0 t- a$ tX, y = utilities.load_data(input_file)9 ~' c; t, x2 x" o/ \
2 E+ r1 f( ^3 T* p0 D8 q###############################################
, I) y( c' l S3 \5 E- D8 b; F# Separate the data into classes based on 'y'
& S3 @( E. Y- T: }* Hclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])0 e' t; [# m% H+ m
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])6 H& N$ l+ U' p1 G e6 S
; x& f: T3 \+ p8 \" ]# Plot the input data( e2 N0 x+ y4 j4 f- R+ [/ @- d
plt.figure()" t% f0 ^: I) _& }" c
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')/ Y& s6 t9 y2 x* [; s1 i" R
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
2 \$ G+ s+ W6 R3 g2 J9 Kplt.title('Input data')
) |7 A4 }+ Y/ j$ \6 H( Z
, g [# U4 F% k9 @7 j6 I ~###############################################
/ g7 T% Z$ [( ~1 d# Train test split and SVM training
8 f1 i7 o& w* r9 W& D6 Pfrom sklearn import cross_validation' s7 u3 V, Y4 s" _. M
from sklearn.svm import SVC
7 I* ~$ v6 f( i5 R6 @9 E, d8 L. ]0 Y) K9 [7 J
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)2 V5 W3 W: p3 {9 T8 h
; G& f; N3 H N* D. g5 E; F#params = {'kernel': 'linear'}
) z: D# H/ b% T6 x#params = {'kernel': 'poly', 'degree': 3}0 d) f/ D+ R7 u* w, A0 S, U
params = {'kernel': 'rbf'}
O& L4 \0 w2 O5 q/ \classifier = SVC(**params) `) J& Y: ~5 e' S; R# H9 H
classifier.fit(X_train, y_train)
. }! w9 Q8 ]7 @+ }utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
1 |6 M, |( r" e3 C
9 y: y1 [+ V4 h3 E4 W7 Ay_test_pred = classifier.predict(X_test)
( ~+ F# K: z" ^* `" y: k3 E2 {4 ^utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset'); S1 u% c% |( }7 P2 c
; `: A: k( J, k( }0 z1 n
###############################################
# \) @- u7 }2 O( r+ {, A1 F# Evaluate classifier performance' R1 J, {( V$ ]# a$ }+ j
- s$ ^3 |( ?/ y; R @from sklearn.metrics import classification_report
# Z- }: s2 [( a9 x$ a/ t3 V# ^7 q! \% c- p1 z; p
target_names = ['Class-' + str(int(i)) for i in set(y)]
% R" ^$ ^! ^, Z7 g2 Zprint "\n" + "#"*309 ~# [$ e: a, e, B
print "\nClassifier performance on training dataset\n"1 q# P- ]+ Y4 Y) w
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
" Z* r" o: ^; O, [+ ]0 ~2 T: lprint "#"*30 + "\n"# K/ \5 E. T; y# S$ p: b( f& ~
* T& S# ^; P0 q+ D
print "#"*30
$ y8 W/ S2 o2 }print "\nClassification report on test dataset\n"5 h+ Z( ~4 f: w" p$ G* M8 Q
print classification_report(y_test, y_test_pred, target_names=target_names)
3 X) }& h# k' |6 |: W" t4 z2 Yprint "#"*30 + "\n"
k' K8 e- K5 |) h, u. m3 j; s/ [+ ?( R8 R2 V6 G/ V. ~
|
|