- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np& _3 |- o( P2 W6 E8 ~
import matplotlib.pyplot as plt9 q9 W/ B- F/ C2 n4 H1 g9 M; X
( F4 l7 @6 J; U3 {
import utilities
/ P8 o P, {! T/ V8 _: k
4 N' @4 k! N$ V1 m( b* q# Load input data
g6 m" ?- y/ g, Qinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'4 Z0 [( I& z! u% E! O/ P& ]
X, y = utilities.load_data(input_file)
h0 b/ O) R: p
" a" d/ E! F/ x; Y3 N' G###############################################) ?" K* H3 e8 x$ |2 Q. y
# Separate the data into classes based on 'y'
5 i$ a2 K8 k& P1 l# t9 V7 Nclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0]), N! {: k3 m" X& Z
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])6 l# z; e0 N1 |$ ^! ^, X
& I) J* P+ W9 H* B0 X# Plot the input data
* X# h: t7 }0 S; Jplt.figure()
2 ]; H8 h X t! q3 d$ `plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
8 ?6 o7 s2 o$ iplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')# h& m7 o/ ?1 w& r# `! d
plt.title('Input data')4 J- O* q+ d4 a( @, Q
" t6 R( X5 n( o
###############################################% ? [6 Y# ~$ g; c2 M5 F; J* n
# Train test split and SVM training
% W5 F& A g: e9 R, C, _. Dfrom sklearn import cross_validation
8 w3 `7 U& v2 v3 v- T0 p G7 }from sklearn.svm import SVC
$ O4 n+ v& P/ B5 ] c9 s, H5 Q9 R3 W1 W3 A$ c4 t, `
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
: |: Q0 j2 |4 l7 B
/ r; g6 [& `7 x#params = {'kernel': 'linear'}
# S0 }& n' z3 \; l' `7 X9 H9 N#params = {'kernel': 'poly', 'degree': 3}
7 _+ M2 h! N' z% wparams = {'kernel': 'rbf'}
; \' q; V+ K2 ^4 L! {3 iclassifier = SVC(**params)
+ W' O* ?- z5 l8 _! yclassifier.fit(X_train, y_train)
( ` x7 r2 @6 i7 G3 O, w7 @/ x& Autilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')6 C( O& }5 K3 m, z% I X3 j
7 z! X9 U7 d, T6 e E* K
y_test_pred = classifier.predict(X_test)
- |- K8 S S! n9 v3 I4 K/ hutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
, x; c0 m! [8 G3 ]5 F m2 |# `; }8 Z0 D
###############################################
7 C. _4 B& h' N6 o% _# Evaluate classifier performance
8 f% b. X: R# i$ N- H! A- `+ o c& T* H
from sklearn.metrics import classification_report/ p6 [/ E+ B' o/ z
! M1 N: h8 Q' [. C; Gtarget_names = ['Class-' + str(int(i)) for i in set(y)]0 R5 Q6 Z' t5 m6 J. j5 {) n! u3 r
print "\n" + "#"*30
' ^$ f$ N, ]8 M( V; m, qprint "\nClassifier performance on training dataset\n"% [7 m$ X; r( N
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
% \- {9 A" z3 a7 ?9 j- Y' T9 A% ?6 g3 Uprint "#"*30 + "\n"
) O2 D" ?$ }# v! g& ^
1 s/ I g+ J" v9 A/ O% s9 rprint "#"*308 H3 C. w) b) i% v. y
print "\nClassification report on test dataset\n"3 Y+ m4 b8 Y* g/ q9 u5 i) j
print classification_report(y_test, y_test_pred, target_names=target_names)
2 Z6 s- c* s) ^. C# O) ?/ |3 R% Bprint "#"*30 + "\n"+ k. `6 H: k+ v) f/ C6 k' \7 t
$ i; r0 O( W! v2 J2 E2 h& G
|
|