- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np" l: A' L7 P% O( ^) J7 I
import matplotlib.pyplot as plt; r( r! b9 r+ b+ Z: Z0 G
, e% u- i' U+ J) b- b
import utilities
7 E, ?3 m" M1 r/ O4 i% @3 N1 f! u) h* a( ]% z& n
# Load input data
5 E4 x7 u% L, S( Iinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'/ P8 o5 Z4 o* S: e' i
X, y = utilities.load_data(input_file)
4 r/ j; K) O/ p( q! l
0 S/ |" s" Z ]: I! s+ p! e###############################################* \! h; M: @, l6 b: S8 _
# Separate the data into classes based on 'y'2 ? {& \; k3 r' b! f# C8 k
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
' u2 M* q. u Cclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
4 z+ \7 b& P( G3 I1 U. U3 f8 t+ x$ u$ @& U* ]' L( t' A3 k
# Plot the input data
, y# k v) U: G( H h. f0 pplt.figure()* Z( o: { w/ z7 E8 P
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
) G& A0 X0 p/ ~& u! {# ^9 ^' h/ N9 T7 Xplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
' h4 x! S3 O' n$ V" H5 b: G) P7 Dplt.title('Input data')
- D+ G E! y( ~6 G8 d4 E4 f9 X6 l: ~- Q% A$ f$ ?
###############################################
/ b q+ k6 e6 q& f, C# Train test split and SVM training6 { [8 ~2 w/ x6 I3 D& b
from sklearn import cross_validation& E9 g! r+ h1 q& ^" D
from sklearn.svm import SVC- t: \& l. h8 e( O* B! [
4 c2 b+ i3 E% a/ k: a) G1 RX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5), R: E0 U& _/ k
& E; q. ?% F( ?* J9 T+ c4 f) X5 I#params = {'kernel': 'linear'}
7 h- B# b# ^# H7 h% Z#params = {'kernel': 'poly', 'degree': 3}6 x- E9 W, u1 m
params = {'kernel': 'rbf'}
+ L; X- g. e5 ]- {0 \/ W- Vclassifier = SVC(**params), h1 S1 ?% w) }) q) Q/ [- W
classifier.fit(X_train, y_train)% J- h( ?6 ?4 f/ Z
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')8 u7 @0 z2 ` n! T
' J8 c5 Y9 }+ E+ U8 T9 V8 l8 Ly_test_pred = classifier.predict(X_test)/ [4 }' C7 H. x0 ^% ^! Y
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')3 \% C/ L9 O k9 a3 N0 m* m4 N$ I
5 M, @0 x2 J. p3 _###############################################
) t* U- O$ j7 ]1 z% S' l- C( X7 ^: k# Evaluate classifier performance
0 O" r3 i6 M: `: Y" N$ s2 p" h) T' c9 @' ?
from sklearn.metrics import classification_report3 D2 P1 ?1 {" `8 P" h& ^2 r
! b* U4 B! t; C3 `7 Ztarget_names = ['Class-' + str(int(i)) for i in set(y)]
n; z+ ]. }$ R/ u- O% y0 Lprint "\n" + "#"*308 {* L. F" {5 q
print "\nClassifier performance on training dataset\n"% l: |% r* U+ o7 t
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)" C' U" W2 q8 E ^6 U9 R
print "#"*30 + "\n"5 T! H0 Y/ R( L! h& E- u9 W h4 L
7 I: ~/ b W, ]print "#"*30
; Z# x6 \5 b! J+ b8 bprint "\nClassification report on test dataset\n"
5 p! ?0 x7 e- i2 O" {, }print classification_report(y_test, y_test_pred, target_names=target_names)
/ R; q5 k! H# H4 z- b. v% ^print "#"*30 + "\n"
" ^4 Z! d( @; ?, R, E0 @) K# K
# q+ W, |( m9 G |
|