- 金錢
- 46
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 556
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 46
- 威望
- 3183
- 主題
- 0
|
import numpy as np# z. k4 ]3 S7 y" V7 y$ w( p) X! {0 F2 x
import matplotlib.pyplot as plt, g; _ d/ V3 ^, w5 p% j
) H+ z2 v# P* Z7 b5 Y0 k$ dimport utilities ) c. J, ~# {& t
1 L8 G! s- K+ h# Load input data
! T: ~3 \# H9 W2 @6 `" i5 }3 `input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
; f) `& J- H1 |0 s8 @: z0 `X, y = utilities.load_data(input_file)
" u$ y' o# D: i% S! P- i0 O g8 J" m* N) K r+ o/ O
###############################################- L7 Z$ l4 A; e l$ K
# Separate the data into classes based on 'y'+ q5 k: l5 P5 P4 d( ]: H
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])2 c) W% V5 N3 P! z
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])# s1 Z1 u( M5 U& q; m1 w
7 _# a3 v( d4 d4 l( k0 h8 M8 m" b- q# Plot the input data
( @3 p2 Q* g% c5 y; R/ Oplt.figure()3 L! g8 R$ l, L1 J; y" K
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
- E* _ _: y' q5 f. qplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
2 r( F, l9 Z4 {- {plt.title('Input data')( e+ z: W* P' C Y) R' g! [
( j9 @6 ?3 X9 M! w( i
###############################################
9 B, P& m0 `* r: Q% O- o H# Train test split and SVM training* A/ Y2 _$ y& Q
from sklearn import cross_validation, [% q2 }6 H1 o- {# w/ s" D
from sklearn.svm import SVC" B G/ A4 v. g5 z) h7 @
8 W0 ~' P) q5 T: _: M w3 tX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
" F# I5 t+ p: U
" N: G1 m( N4 K0 f2 X S7 X#params = {'kernel': 'linear'}
2 X. M2 ^ W0 l5 I; w#params = {'kernel': 'poly', 'degree': 3}, X7 x% f3 p- r5 o# c" k3 \
params = {'kernel': 'rbf'}
' z. Z$ C1 K+ n2 n- fclassifier = SVC(**params)8 X& v9 |* P. G
classifier.fit(X_train, y_train)
6 o8 H$ L. L( u" s- N3 k: Qutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')) b* c( H, C8 e8 j
8 S/ ~, e9 [" d4 x7 u
y_test_pred = classifier.predict(X_test)
3 g( o- l* J/ d2 I% g; G) zutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')1 E( Y! V( H2 L U' z
. i* n6 t$ ?4 T* H0 a###############################################
H+ R. l3 f" | c. i1 [7 d# Evaluate classifier performance* |% s0 }( A/ C: B7 b6 Z
8 }9 k z' U/ K! T# q
from sklearn.metrics import classification_report, ^5 s% n: x$ v, g' ]2 N' |
" d7 {: O6 z, s5 m* ]
target_names = ['Class-' + str(int(i)) for i in set(y)]
- ]+ R0 F6 x2 S0 y- G# l4 T% Bprint "\n" + "#"*30
+ U1 l3 B. s# W% f& U$ Vprint "\nClassifier performance on training dataset\n"
- e% m c2 E# u7 |9 x0 qprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)% z$ U9 l# f/ t- w. l) v
print "#"*30 + "\n"# k( q- x, U6 W0 M* `7 N
$ t ~) D% L8 @( V1 }" A! sprint "#"*300 L5 W3 \6 V, r) }2 K' x# \4 l
print "\nClassification report on test dataset\n"$ ]: U! {5 N/ r/ J
print classification_report(y_test, y_test_pred, target_names=target_names)4 K. c8 ]" A. r8 ?/ a2 J
print "#"*30 + "\n"4 j0 m0 T) u& _
5 H8 {6 a. X' b7 N
|
|