- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
4 @( f# g; F. O7 r9 }1 {import matplotlib.pyplot as plt
; d( M x3 X' p+ u4 {- P6 j% I
import utilities
5 x j3 Y( c; o) _' Y, f8 j4 Y
# Load input data
0 G6 `0 e5 E$ C6 r) b$ i$ m4 k, Pinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'1 p7 _/ _* z$ d6 g2 t- {. z
X, y = utilities.load_data(input_file)4 T! M1 x/ s! B6 x; K [* V
# \. I" U* j4 ~- t7 x2 m' h
###############################################
, O& u/ V! G' T! b8 o( I+ k+ I# Separate the data into classes based on 'y'* C b8 X1 [; R, p
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0]). f8 E- B$ @# f
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1]). c: l1 j @0 w# ~
0 S5 ~8 [4 }/ o' |' g8 {% h" b
# Plot the input data
% D8 l P' T1 t6 H( G3 splt.figure()2 q4 m& H6 j9 [* V" T+ c! `
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
* f- ?/ n! x& l/ Q' o! m# Gplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
4 v; i7 y3 q- R/ [plt.title('Input data')7 {5 [& ^( ]8 D: v* B7 I, Y* b' z
" f& `* T5 q O# X+ J# T
###############################################
3 i; z/ p) ~) K3 O, b9 X0 ^* U# Train test split and SVM training
3 S( |# r2 d/ E. \from sklearn import cross_validation
% b' T9 n! `' K" k k1 O9 tfrom sklearn.svm import SVC' Z0 \! Q7 @# ~; G
3 o1 r# N6 U4 D/ |' k6 Z$ x& F
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
L: U x! l. L& [) D4 R
* j' n( W# T2 B( [ {# B) g9 h7 l#params = {'kernel': 'linear'}1 b+ C n2 P% E; ]
#params = {'kernel': 'poly', 'degree': 3}
- _4 D' f0 ?+ [params = {'kernel': 'rbf'}
1 B/ E, w9 _0 ~+ P J9 w3 N/ Wclassifier = SVC(**params): N: Z* _1 r6 e$ I. H
classifier.fit(X_train, y_train)
6 I& z5 P6 }- L' @6 Eutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')' |$ {: D2 e/ b7 c3 N2 |# \
3 L3 x3 F$ H6 X* Q6 _8 n# wy_test_pred = classifier.predict(X_test)
6 x" ^7 I8 P5 N$ m! ^1 R: A% V3 Jutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')! C$ c6 R" H* K1 s* T2 [+ r u. [
3 O4 L+ R& e0 I, T###############################################
5 T9 m- ?/ E4 F1 s3 }& y8 ~+ D# Evaluate classifier performance
. N- P2 | P1 c6 N2 _7 B7 H1 {$ N! z6 @; @ r" B
from sklearn.metrics import classification_report5 @ {$ G7 y' j. z2 K6 o
6 y7 Q( [+ u, q: v8 Q& L# U: F) @
target_names = ['Class-' + str(int(i)) for i in set(y)]# V, m! Y$ t1 O0 i+ U
print "\n" + "#"*306 [6 a+ d. E( e% O
print "\nClassifier performance on training dataset\n"
; h$ L0 E2 M3 l( C( T( Wprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)7 M9 G8 }( | F. c& j; V
print "#"*30 + "\n"
3 D& m) n' _. ]1 X, S. F0 m2 D: {- T: P* O- d8 h9 F
print "#"*304 ~( D+ m/ D% z6 q: a6 Z* M
print "\nClassification report on test dataset\n"
* s- M' \2 l8 w9 l5 Bprint classification_report(y_test, y_test_pred, target_names=target_names)
* i- c* G+ Y N W2 ]print "#"*30 + "\n"- A, k$ {) x b
3 M2 t: k' U; h |
|