- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np6 k5 n# B. \/ ^2 i& Y" l1 g4 [
import matplotlib.pyplot as plt
. v+ V: A5 J5 {9 H" U0 t0 h2 d. t
: }( A2 {# J: r& |import utilities
8 ~; ]0 }4 X8 m; q
0 w" J3 @5 A1 D' T/ ]* Z# Load input data
" r6 b' U& K- ^ p( ], |& oinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
( h$ |$ }6 u7 ]/ u1 oX, y = utilities.load_data(input_file)1 @4 W# e- ?0 ^
6 ?/ W. k8 h6 n2 l6 J. B
###############################################% g' i8 K, b& d/ C+ L+ p# A
# Separate the data into classes based on 'y'
, ]$ M% O) Y4 M; Q5 W9 fclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])# Y2 k7 H1 `0 ]# w% k& b
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])5 B& S/ X4 t) O7 K! H, L
; N- T( G* C; T3 W; i
# Plot the input data3 E$ s# S, T7 J" p
plt.figure()
5 f; S- } v# oplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s'), @2 }% `8 z7 F' t% i2 O s
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')9 I& v( z: H& O/ H
plt.title('Input data')" g( E% |5 @/ t4 T' F: ~5 ^
0 B1 x; D' F; i, }! E+ a: H. \& ]###############################################- t3 c. l7 l' |! M. r/ L0 {
# Train test split and SVM training7 c' P; k% d% F! Z% Z" p+ Z( j
from sklearn import cross_validation/ Y6 {8 |7 {# ], k' d$ t
from sklearn.svm import SVC: j( ]$ i% ^: o( I4 d3 W9 X6 W0 a
6 u! h4 Z( i' P; {9 \* s! h
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
: f! j9 J3 _+ g& e8 U9 ?/ W& v; N" N. s/ T7 ?, @( W1 x
#params = {'kernel': 'linear'} p1 j$ u$ M* @" q# e
#params = {'kernel': 'poly', 'degree': 3}
& L: |- @% v" e3 {params = {'kernel': 'rbf'}- x6 O9 M1 S M
classifier = SVC(**params)
) E* S3 Q* Q. C& U# ^' {. j/ Qclassifier.fit(X_train, y_train)0 Z5 i- a0 K" j6 u$ m* l2 i- p
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
- e( _, g' c4 G, \# F
' Z' ~2 J' s( p: w% ~8 Ey_test_pred = classifier.predict(X_test)$ I7 G; ]' U$ v$ `
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
/ ~; \3 D6 R" Q4 E
S' B* r& X2 q; u d- e###############################################3 {* f, o; ~0 `7 z! s
# Evaluate classifier performance$ e9 A# F4 A n
7 e9 x6 [+ Y# b* n+ r% ]& |from sklearn.metrics import classification_report5 C; V% T2 c$ g. x( }4 _
4 Y% H% B# l9 l/ Wtarget_names = ['Class-' + str(int(i)) for i in set(y)]$ q$ M# ~5 M( a! K3 G9 }
print "\n" + "#"*30! N7 m) v2 b% X G# |3 F4 b
print "\nClassifier performance on training dataset\n"
, |' P- C2 `$ E1 E1 V# R; U) f1 Mprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)3 {9 }. Z6 W8 Y0 Z1 @
print "#"*30 + "\n"
2 j q/ {, K- o. ]( p2 \9 f- _+ O; R, c$ n! D1 z! L
print "#"*30) P" c: c& z0 z E; ?
print "\nClassification report on test dataset\n"9 n! L$ Y! L& l7 F. o
print classification_report(y_test, y_test_pred, target_names=target_names)
( a" o' ^! d( G1 C% r9 q( Iprint "#"*30 + "\n"4 p: X4 e+ A$ e) U
# i! w3 G; ]$ Y
|
|