- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
/ R3 ~& {) [, s$ G& _6 i" Eimport matplotlib.pyplot as plt' y1 E4 s. G7 ]# y! J; Q
5 N5 M6 ~. L, b( ^import utilities - C0 o# H t m- `3 f$ J* T
' o$ g1 t+ |; R h2 |# Load input data C2 n ?! r0 f& a9 t& ~# C
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
# h0 ~; [$ v7 p( h1 R- @X, y = utilities.load_data(input_file)
/ k- n( Z) Q" ]% F" T' [9 S, M( d3 T. B: I# p6 k
###############################################! E, H. j2 c2 D3 O' |3 ~
# Separate the data into classes based on 'y'4 |9 ~+ Y. b6 {5 \% r0 l- O; l
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])& ]% j( z' I% J* `
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])- Z, j) T" l6 c( H: m
/ o) ?9 s7 u; f* j1 C3 c6 u: e. Z4 h# Plot the input data$ I5 \! W2 `. f6 h2 Q
plt.figure()
: A5 [9 x8 W9 ?9 r) Kplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')( H+ c5 v* T8 N5 o
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
3 a9 P1 U( l* f! h) B5 ?6 rplt.title('Input data')
$ t" Q* |. Q% w! Y: u) {. t0 i) f& p5 T! b( L( ~ w
###############################################
; X! s+ y! z$ ~9 _; x# Train test split and SVM training+ Z! `/ g; z# G
from sklearn import cross_validation
& Y# Z5 y. i: _, j& | U6 vfrom sklearn.svm import SVC
5 L6 t) ~3 ], [! X" b& h- {8 A8 M+ b: S' P5 Y1 _9 e
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
. v& t: N" x3 n0 \ \" F( t4 z9 N2 s' K3 k4 x3 \
#params = {'kernel': 'linear'}
$ U) R4 P5 K1 E9 L: V" Z#params = {'kernel': 'poly', 'degree': 3}5 a f6 [9 L4 c1 V7 D7 q
params = {'kernel': 'rbf'}
( a/ Q# U' o' ?1 t+ n2 G" t& wclassifier = SVC(**params)
1 `' u$ Y& k, v" b4 i; v3 a1 G6 Oclassifier.fit(X_train, y_train)
! u' O- r+ y: @: ~1 |utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')% a, N K/ L2 |" V7 b O( l" U4 e
8 C) j$ S4 @7 N$ ]. D5 yy_test_pred = classifier.predict(X_test)& O+ R! S2 ]3 n
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')1 o+ |6 ]3 W- `7 O a! U: F$ I
a0 L0 ^& W; U& Q
###############################################
% p( Q2 y; @8 K* g. T# Evaluate classifier performance
7 d- p1 ~) T* s; ?4 _5 M2 _# e1 F) p4 {
from sklearn.metrics import classification_report
8 Q/ A4 C* S! N4 A& `3 ?& Y& h1 M; A& U% G. J3 T
target_names = ['Class-' + str(int(i)) for i in set(y)]
, |' S. r: @, s- t5 Yprint "\n" + "#"*300 N3 \2 d9 R) ?' E
print "\nClassifier performance on training dataset\n"
; L! ~# K" k8 j2 S. o+ Mprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)# v0 U8 d9 c. d) O: t" N" {. y
print "#"*30 + "\n"
& F. M: o- @7 j$ C4 z' S8 h4 f' C m& G4 L5 q
print "#"*30& k8 t- H6 W0 T, b
print "\nClassification report on test dataset\n"
( I$ c& R) f& m* Fprint classification_report(y_test, y_test_pred, target_names=target_names)
% |6 p) H$ m6 Z1 B r d& t5 x* qprint "#"*30 + "\n"
. v R1 B7 I) d; {. J3 G, l" e9 t/ r7 d1 F
|
|