- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np! A7 z* A1 I8 N: F' V9 a7 s1 R( v; p, x
import matplotlib.pyplot as plt! _. M) X% w$ B: t
4 b$ u4 K( c4 v: A" Y9 j _, B& Wimport utilities 8 w1 W- w" V1 n! c
% T! r% ?+ T& N& M; }0 W# Load input data
{: `7 {! A" K% H+ x& t# iinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
: e" ?$ A4 {' H4 _1 ?: q RX, y = utilities.load_data(input_file)
6 c! E9 O2 C/ T- @/ V( E Q0 U1 N: {$ @4 |
###############################################% a7 ~0 m. y. J7 ]4 Z. L
# Separate the data into classes based on 'y'$ R# f' e+ \0 `& K9 u$ B7 [
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
2 w1 H2 K: |; N1 B: z/ q8 aclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])7 }2 |9 `& o* i
4 O1 h0 U* Y, O8 b
# Plot the input data
1 L5 X/ s% z0 ?7 ?- _( wplt.figure()+ ]$ {) H. ~' G9 F% C/ y
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')1 o8 d, O& k+ x6 [5 f
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')0 \. r8 p+ F. i/ A/ i+ t9 ?
plt.title('Input data')
/ a+ b2 ^2 X' a! _" q& l- r& w. f1 d
! ?7 M5 u r2 p/ M& C###############################################% |- f! x" y9 x/ [/ H% ~
# Train test split and SVM training( E. F; G- s: n2 |$ g2 _+ |
from sklearn import cross_validation
4 l- {8 ~ _3 B3 }from sklearn.svm import SVC
) M9 g& n1 B) n$ j+ {
; P9 K; I+ n1 z6 M# t9 l: nX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5) D, Z$ U' f$ [7 c+ N$ K% l7 u
, ~$ `2 ?" L0 ~#params = {'kernel': 'linear'}& O. n! N2 Z! d
#params = {'kernel': 'poly', 'degree': 3}1 }" Z0 @! v# U/ Y! N |! y+ ?
params = {'kernel': 'rbf'}2 }) F* o# K N- W+ S
classifier = SVC(**params)
! I& ?0 m% o2 q/ Nclassifier.fit(X_train, y_train)
* Q) i; `7 W' Z% D& V" ]" r$ Eutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
, |0 H" Y7 I3 I5 ?% B+ B4 h- H( p8 C( g- X5 H* [( {3 h7 \. {
y_test_pred = classifier.predict(X_test)
7 Q4 h& k6 Y& hutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
% r7 F1 o8 B6 D4 J# ^
- m; `9 }( o4 b) M# S8 @###############################################1 p: z- E6 B( n q A6 {
# Evaluate classifier performance# M% M7 ^6 n; f v8 ~" Z7 ]: I5 u
$ ?+ q6 j4 B" t/ N5 _4 e7 L8 O2 A
from sklearn.metrics import classification_report9 ]& x, f" n4 U' ~/ [3 |( |! n! i) E
1 ~- o0 r( S' d7 L% r5 s$ H
target_names = ['Class-' + str(int(i)) for i in set(y)]" C( |7 W8 | h% j+ H1 \. _7 z
print "\n" + "#"*30
+ y4 m5 y* J( [2 Fprint "\nClassifier performance on training dataset\n"
- F# H* h0 h5 t Z" kprint classification_report(y_train, classifier.predict(X_train), target_names=target_names), _6 {/ Y$ M! G$ U7 t; D- P
print "#"*30 + "\n"
E+ B6 b# Q" E7 R6 A. v
! p. x6 D3 l& X3 iprint "#"*30
: J# Y. U( _+ d& c8 P/ X0 \- ^$ ]print "\nClassification report on test dataset\n"6 Y0 _: e7 m) a' z! X. J+ j% T
print classification_report(y_test, y_test_pred, target_names=target_names)2 ^1 b& a, p& d+ `+ F
print "#"*30 + "\n"7 D' v) J7 a* ~+ U% f
n. {6 k Y- m& \
|
|