- 金錢
- 46
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 556
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 46
- 威望
- 3183
- 主題
- 0
|
import numpy as np
9 h" l7 m$ p9 I( `4 b- H9 aimport matplotlib.pyplot as plt4 i% h$ e9 _: `( P# J. y. s4 T
`6 P$ a; U& O0 b* L
import utilities . v3 G3 c* \0 O2 c# ^4 M" S1 e
' g+ w5 z F6 B9 d$ X: ?( w# Load input data8 B9 H2 c; ^! G1 e! z9 Q S4 x
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
1 t+ e* e, p" FX, y = utilities.load_data(input_file)
0 H1 X- z+ ~) K! K6 q- x
& d) ~8 X5 [4 G# ^2 H* |- c l###############################################& ?- R* E2 B: F" Y) S4 m Z" ]
# Separate the data into classes based on 'y'/ T6 ^5 Q3 x3 {! J. F0 F( k/ ?" {
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
7 C- r9 y& O6 j( Hclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])8 a! H3 D6 ^; i) K# X
) X: Z6 Z- J. e8 b4 m6 W- a6 t# Plot the input data
: F6 w/ A$ q5 L# eplt.figure()- _5 A2 e$ |1 y6 k
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
) O" `6 `. w$ ]0 ^0 G6 V/ M, C9 [+ _- Iplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')# T4 p8 k$ |% C- o
plt.title('Input data')- ]2 H- _0 j' ? E/ E* f4 ^
6 d8 k$ A! C' |+ A# ~' e% A###############################################- O, S3 I, g; ]' I3 A
# Train test split and SVM training) P$ S# e5 O& Y! n8 ? H
from sklearn import cross_validation, l4 f' \' e% d6 h$ u& S; [) f
from sklearn.svm import SVC/ ?" Y- `2 q3 ]) X- |) r
" ~7 o: n- a3 ^- y- ?
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)$ D1 h7 j. b% M. g; T
7 \( r4 P9 u& S; I, N
#params = {'kernel': 'linear'}3 v9 G# |! B/ s6 D7 n0 i+ b& C5 p
#params = {'kernel': 'poly', 'degree': 3}0 O' b$ {# _( r) z7 d
params = {'kernel': 'rbf'}
( f+ F( O' b5 fclassifier = SVC(**params) C6 W' u1 W, d9 B! \% c7 @# ]
classifier.fit(X_train, y_train)/ V- q8 v8 d9 O, m/ d) v+ L1 V3 q2 K
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')! Y7 y$ H2 _5 `6 L/ P3 m A1 {
* M/ m- D, z: X* Z6 S1 z) m+ m9 v* Q
y_test_pred = classifier.predict(X_test)
U* m5 ^' k, T9 f# l& Nutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
8 I* J; Q. h. q8 R \ b3 t4 R7 \& E1 E. K* w# E
###############################################6 c; q- X" j% v! a H# k8 ]
# Evaluate classifier performance
( G* Z% o3 V7 ^0 k
% s- b; n$ l2 N j3 nfrom sklearn.metrics import classification_report
. v* k3 @( p# z9 v& M
* u2 c1 @. v$ j: c5 otarget_names = ['Class-' + str(int(i)) for i in set(y)]* Y4 B7 _ T5 H& i6 L2 D& h
print "\n" + "#"*30
v& o, X1 r/ bprint "\nClassifier performance on training dataset\n"% D9 q+ y4 F' t
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)) K3 Y" |, Q. ]
print "#"*30 + "\n"
7 ]) a- U- g* i+ W% c
" ?$ b: f- V; l5 _% F4 h# W0 `print "#"*30( f0 Z! l; v- X1 y
print "\nClassification report on test dataset\n"% E, h8 ~# {& [7 Y( ^5 i
print classification_report(y_test, y_test_pred, target_names=target_names)
% \5 P6 H1 Q! Uprint "#"*30 + "\n"
9 I9 o, k- W- C C/ m
3 }: f; }( N# m1 S$ D- E4 C |
|