- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np# I0 ]) _ h+ j, ]' ]) F3 O
import matplotlib.pyplot as plt7 Y. L" Y- e3 B7 F% ~
8 H6 E! V1 ^% u/ b. f$ r
import utilities : p/ J3 L+ S- Z9 L* L
( P/ O! ]% \9 ?# Load input data
6 X2 D8 Q" c0 winput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
# H" s4 ^5 z$ s2 [9 S0 UX, y = utilities.load_data(input_file)5 v1 y! }6 _, \; E- D& ]
2 r% H: V) A$ T. |& ^###############################################/ z8 o3 a" D/ k' C) j8 v
# Separate the data into classes based on 'y'( z8 {+ M) w4 o/ R1 T X
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])9 o9 n0 A) }3 L' J
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
% u4 Y( _" l$ F- }% q1 ~$ I$ u7 E
5 i; C2 J& s/ T# l- w) |1 b6 m, C A5 z# Plot the input data
( |4 K& `8 r9 H& h; ^ U4 g9 mplt.figure()
- ]! N5 F1 b! B$ V+ _, |# M( [7 P0 gplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
7 Q& X7 \: R" k" jplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')6 f3 E% [. ]3 `$ H6 C: @
plt.title('Input data')
2 K! ^ d: O1 a* I$ v0 ~& ]6 B5 b" S
###############################################
/ t' m& D9 P, L7 f3 |- y: o# Train test split and SVM training# L7 U' f+ J. v6 f) p4 K4 @+ V
from sklearn import cross_validation: w$ k) o7 j# C3 W% |
from sklearn.svm import SVC9 B; S1 S' Y( @4 {. ^5 [/ T0 `
0 \: X0 p# M! u) w$ ?X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
" |& ]; k( c! m: Y: v
+ N( }& L+ s- j8 |- D#params = {'kernel': 'linear'} x N. q# M6 s! z1 e
#params = {'kernel': 'poly', 'degree': 3}
' W* ]. e, T! d2 T+ Kparams = {'kernel': 'rbf'}5 J/ J: T# w& l% s: n9 P
classifier = SVC(**params)) S9 _3 t( B. ]* o: L7 T) [
classifier.fit(X_train, y_train)7 I+ Z' \8 L4 m$ X
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
& A' l; F. m/ {* ~/ ]- A( x$ `% H; k/ ?9 O
y_test_pred = classifier.predict(X_test)6 \6 z% P/ A4 t2 ^, A6 u5 x
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset'), U5 m$ M, r: I5 s7 Y
0 p3 p/ s0 u" g% m* |
###############################################
' R2 Q! d; C7 K. k# Evaluate classifier performance
8 O" W9 ~0 d9 j* N/ x( u4 G/ v1 x9 P
from sklearn.metrics import classification_report0 [5 L& p; d' R. ?$ ~+ J% z9 Z. |
+ e2 ~. T4 M& I1 P, z9 S" d
target_names = ['Class-' + str(int(i)) for i in set(y)]7 X# b# T' X" S. Q7 o- r \
print "\n" + "#"*30
+ `' g+ x5 A" nprint "\nClassifier performance on training dataset\n"" T' v* T& B8 D# e) k% K9 h
print classification_report(y_train, classifier.predict(X_train), target_names=target_names): ~4 X& g2 l0 s2 I2 S
print "#"*30 + "\n"
" b# l: b0 d. y
0 c+ w# Z; ]4 P- }1 l+ V. l+ K# nprint "#"*301 Z9 q- s O3 f) P. H
print "\nClassification report on test dataset\n"
& Q: I. Y- q I* `+ h+ Tprint classification_report(y_test, y_test_pred, target_names=target_names)
; e- T# `6 r C# V! A/ qprint "#"*30 + "\n"
o. d4 ?1 I( ^: r B c( y6 s, t. g! h; S, u! E
|
|