- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
% J* g/ s- W+ [( e. n/ timport matplotlib.pyplot as plt. G2 j* X3 j5 r6 ~
3 Z8 n3 ]9 s/ v7 [7 u6 E: Bimport utilities
. N6 @" D) [2 M3 j- S
7 H& Z4 M2 U4 K, j# Load input data
3 w/ W1 O( o8 |0 ainput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
: W; q7 o" z* m3 e8 H9 CX, y = utilities.load_data(input_file)$ ~# k( n! n# u8 u1 a
$ v0 z' F& R5 [5 q###############################################
- [$ D0 @& F! T/ Z! C! l) I# Separate the data into classes based on 'y'- _ j& @. J$ q0 H& k8 D
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])4 k1 d1 a" w8 G2 Y$ b j
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])) a, Y8 b" H5 W, y
- ^+ h2 N0 B+ Q# Plot the input data a! W. l3 h: U
plt.figure()& E3 u5 _8 Z* h3 D9 G
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')0 b- a6 @. ?1 R% ^0 `8 O
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
( q/ }* |7 W3 C1 e' qplt.title('Input data')
/ ]4 D2 `- w+ ^2 Y$ R4 c0 S; o% B* T
###############################################- [3 W' u! _9 n/ {$ B( S
# Train test split and SVM training
0 D/ X6 X5 x1 c9 G9 N% c; ufrom sklearn import cross_validation
+ ?7 o2 D# b7 {+ U$ sfrom sklearn.svm import SVC8 M- L" m" E" e- P$ c+ X; I
# \* d, [- L1 T( \% xX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
, Z* W" ~, r" y+ U8 ~8 {# S1 ~; h& Q. W0 q' X, }
#params = {'kernel': 'linear'}
0 W6 t/ h* h/ `. B# K5 H d#params = {'kernel': 'poly', 'degree': 3}! x! D+ q4 {8 C1 l2 R# F
params = {'kernel': 'rbf'}
" ]+ W' z; J5 k0 u8 D2 ~. \+ ~2 Gclassifier = SVC(**params)
1 J( }; L: s) Q* f% |7 w$ N: P Zclassifier.fit(X_train, y_train)8 u; _5 v5 q$ ^& e/ s1 K0 ]1 p9 I3 g6 v
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')# h3 Q+ [. F( C
% d- D2 a, O1 }* v @
y_test_pred = classifier.predict(X_test)0 J" C4 w& C/ p; x2 r6 c% k( y1 X
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')" p6 h0 y5 Q+ ^4 }2 Y4 Q& I' H6 U
3 w6 C/ u; u8 y! I( K, R6 ]+ Z% p
###############################################& g$ \8 O+ _8 Q+ D3 }% E
# Evaluate classifier performance+ d7 E* W- e' ~$ _) f {
( w4 c! |: z7 {" xfrom sklearn.metrics import classification_report0 ]" x4 F$ ?/ Q9 f4 e
' G @, K2 f: I9 d1 c3 V$ C" ?# X2 [# htarget_names = ['Class-' + str(int(i)) for i in set(y)]7 k& L' u/ J5 ^/ S# t( J# g- }: y7 o
print "\n" + "#"*30
/ ~; V1 H% ^0 B$ z' Nprint "\nClassifier performance on training dataset\n"
% y- Y5 }* r1 Y# K6 P, mprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)2 t; D+ ~+ M* q: s
print "#"*30 + "\n"
2 r; A* {4 h7 K7 g1 r
* Y% C! ^6 L1 S& g) t# oprint "#"*30* d4 Y' j1 R0 ~, t3 L
print "\nClassification report on test dataset\n") w) M% e: Z. D( {9 s) t
print classification_report(y_test, y_test_pred, target_names=target_names)
8 O. F8 c4 d& G) ?print "#"*30 + "\n"
& q6 R' b$ m6 b; j m
6 E# z2 Z& `+ X6 D2 x |
|