- 金錢
- 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/ Y9 R: e, C; a F( _- ?import matplotlib.pyplot as plt8 V, T+ T, x' E" d/ B) d
. O' s" Q% l$ M7 C! ? Vimport utilities ; o" i i! w- |. f! F
( }* C' G9 `2 d, o' s' Z
# Load input data1 H$ K% F4 I# G3 M Z, d/ a; `# u
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt', K H% M$ K1 Z! B+ @& g1 G
X, y = utilities.load_data(input_file)/ {& q: {" R ~- g1 z# _7 R8 Y
: ^7 \7 O0 D" a. m/ x
###############################################
: X x( g/ Y- `) t# Separate the data into classes based on 'y'
$ n; D5 m( ]% wclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
6 K) l) i' }4 V2 S: l& w. Fclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
$ B: Q# d) F$ U; X/ }
. C9 R" J) G' [+ k5 n# Plot the input data
; X5 [) }. l, t% {8 L" t: g v; w* mplt.figure()) N* |4 W" m1 N9 r( L. _
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s'); G, v( n% |' K& `" N6 D+ w4 {" x
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s'). t& F& [+ v4 S% Z+ ^
plt.title('Input data'), M5 t/ D+ ~3 f: m
6 E G8 A1 [6 X1 o8 {3 n
###############################################6 ^! z7 a& _8 Y) t% N: i
# Train test split and SVM training
! N. Q- k9 M3 g8 Z. ffrom sklearn import cross_validation
8 ^7 L4 U1 |- H( @& N% Nfrom sklearn.svm import SVC- d7 q% M1 f+ M ], K) v+ Y
# M5 ^3 [8 I$ |0 G: K: r8 Y& d/ qX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)8 ]5 Y4 [ J9 L* m* m( S
) S+ V0 K" q9 Y4 o5 o' K#params = {'kernel': 'linear'}6 H/ q. l6 `3 o0 F
#params = {'kernel': 'poly', 'degree': 3}5 D6 W d1 X4 P& D. C, ~7 Y! E
params = {'kernel': 'rbf'}2 L6 R3 ^' s3 P, ?
classifier = SVC(**params)
% E- [0 _' x1 `$ L: Yclassifier.fit(X_train, y_train)+ ]) {* K. c+ T& ]9 {
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')4 M' p8 W# q5 K4 m* d$ v5 X5 m
% M! u g5 l5 e9 |$ P7 c- a
y_test_pred = classifier.predict(X_test)2 H% U2 p% g+ A* f2 O
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')3 t8 v0 ~9 k0 q' g. s+ P+ x- n8 l
8 w3 d5 Q$ e* `1 U
###############################################: x) l' z8 x3 I. d$ q- a
# Evaluate classifier performance
$ \/ P) y P& ~ g0 Y, S" W2 L* R' {5 t$ m- q/ G$ } i I
from sklearn.metrics import classification_report" X8 R2 d( U* i+ d# N- e
) F; D" x1 I- A: \target_names = ['Class-' + str(int(i)) for i in set(y)]
2 t6 j5 D* t' V t+ {! |( ]# ^print "\n" + "#"*30
9 ^1 y, \8 b. Aprint "\nClassifier performance on training dataset\n"
) e! I2 n& y, C6 E3 ?5 D2 tprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)
4 D# F1 \0 Q- x, G+ s2 r. o) nprint "#"*30 + "\n"# |6 A# {( ^3 j; ?' D! w
3 Z7 h0 T+ \, O1 e: q0 {
print "#"*308 \+ t# |9 x w4 q
print "\nClassification report on test dataset\n"$ |4 d- G: T# O# M9 K% Z
print classification_report(y_test, y_test_pred, target_names=target_names)* J, R; H+ l! E0 F0 g# _: M: e
print "#"*30 + "\n"
8 N/ \/ d& _$ J5 s3 d. S+ _0 @' u5 ~# ?# M" V! H/ Q
|
|