- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np0 C5 h a$ S1 A/ l8 C1 z
import matplotlib.pyplot as plt
8 w/ D0 Q% @( w6 ^7 ]2 \: f6 w- f6 Y, a% u4 P! i, o1 `, }
import utilities
& S5 p" R! j/ O( i
# B7 ?! U/ z; [, w( w% d# Load input data
, c1 @; Q& p2 u& Cinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
" _2 |) T! N% E5 hX, y = utilities.load_data(input_file)* G0 R* R& n% `& e( D( s
) ~- T9 Q" W* M3 R* K \
###############################################" e4 Q2 F" Z2 Y* r
# Separate the data into classes based on 'y'; z0 ]5 m2 E# N0 `) n' \
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
% R+ d! d1 z2 H/ H! s, Bclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])* h+ P0 {4 s6 q' n- j. @( Y8 _! U; u
2 b. D- h2 X1 n* k, |- h# Plot the input data
, t5 m, `1 p& T7 L4 i( N$ bplt.figure()8 y3 ?" p7 W! n* x
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s'): R) M. C( C9 J, _1 w1 l+ U
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
5 ]# P3 a% q/ o' o3 }plt.title('Input data')) ~4 u2 y6 f5 t% X, a: C
. H8 {; D; W7 D5 h v###############################################3 h+ \$ w9 [( F
# Train test split and SVM training9 T6 Y- `# B! T4 ^/ L
from sklearn import cross_validation
4 B4 s2 y, m4 {, M* \from sklearn.svm import SVC9 k: _0 r- p7 P- T/ z
2 V7 h3 l8 b7 S7 c3 n/ q5 _. H( a
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)3 A& T2 ]! A" I
7 T- N I8 {' k- r9 s1 x2 J#params = {'kernel': 'linear'}
4 |3 Y2 y9 H/ H2 N4 m5 S#params = {'kernel': 'poly', 'degree': 3}, O0 {% P7 |+ e3 \
params = {'kernel': 'rbf'}# v& V, E+ Y# u5 Z& H2 _- T
classifier = SVC(**params)+ i3 ?9 y, k4 W. J: e& F! i# \7 E: r
classifier.fit(X_train, y_train)
+ |& i g0 S- b$ \2 |$ rutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')6 \, }: f! v, z0 q( P9 q3 k
( [5 |' O) D8 Z1 c- { u4 `9 Hy_test_pred = classifier.predict(X_test)
! R" y& X2 x+ t; J( f( kutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
" S( Z" [. t* w
3 I( j5 G, ~0 k###############################################
* b! A, S5 ?6 [ u# Evaluate classifier performance
; S7 i T, s) s$ |/ ~; ^% w& t; c+ s# u' J$ _6 V) O
from sklearn.metrics import classification_report$ c7 X% T9 I2 w$ [- |9 l& o
9 g9 f3 J' o' O0 Y! |5 E$ q) F ztarget_names = ['Class-' + str(int(i)) for i in set(y)]
7 `! Q: w9 K6 c/ Eprint "\n" + "#"*305 J* T6 {& D/ f1 G' i/ V
print "\nClassifier performance on training dataset\n"
# z0 k5 B( q+ p- ?print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
. R: R$ E7 e) Z4 g( dprint "#"*30 + "\n"
* A; U& ^3 \, }$ \' r
, E) k E0 T) p% j# C2 {print "#"*30
3 n( U$ E* p' @6 {9 s" |1 s( Eprint "\nClassification report on test dataset\n"
0 A4 m1 E! D+ R% c5 Y4 \* [print classification_report(y_test, y_test_pred, target_names=target_names)
4 e2 M: d# `9 e# o, T# o8 Iprint "#"*30 + "\n"- e0 A( q2 k0 ~: ^& D# P X7 D
! g9 t$ c" E$ N; ?7 ^ |
|