- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np* q" _2 {0 E( v. P
import matplotlib.pyplot as plt
- j6 Z( S8 o. O0 \. f. ~
1 j& N' P- L0 B2 I$ Pimport utilities - e/ X; }& Q O5 `/ h
5 ^1 L& T l. E0 {4 ]: g9 G# Load input data
' Q( J4 x+ X; Z9 q$ o2 U. [, Zinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
) ~$ H# C9 C# S. ]" U- oX, y = utilities.load_data(input_file)& a/ @- C# v* `5 `2 J- g
$ M6 w. o" g! }6 }/ ?6 @* s
###############################################
& W4 p; b8 _5 ~. Y: H% b# Separate the data into classes based on 'y'% K- p# b' L# {3 ?
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
; f5 D$ v2 h, ~, t' s! oclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])9 A* E0 F3 T0 i* p
* ?& z3 v; u" k/ r0 u, \+ W! _/ V. t: W# Plot the input data
& ?. ^4 O% ]* L5 z) Splt.figure()$ Y- a! }' o' F- A/ ?- ~1 z4 Y
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
7 n! |: m9 l; h" d( G9 v4 z- m9 zplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')" c4 Q# x3 i4 S9 Y/ h. g, k
plt.title('Input data')
8 U! v% y4 v# x% J/ _" J6 [3 p% s9 t; ?
###############################################
) A9 b- y* l2 b# Train test split and SVM training
6 d- U2 \2 X$ h! a2 K, C$ l2 Dfrom sklearn import cross_validation
: P; }5 l) N5 e- Efrom sklearn.svm import SVC
6 s1 a. q# H9 V6 s- q
' P/ z" {* ?- zX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)' \8 j9 M+ F; E: T
$ U% I' N6 E3 n% [2 h; l4 _#params = {'kernel': 'linear'}1 U {+ r$ e; d( r$ d
#params = {'kernel': 'poly', 'degree': 3}3 R8 b1 h& d) s/ a
params = {'kernel': 'rbf'}
/ `6 w! x7 H: i( y0 U6 D- Q gclassifier = SVC(**params)# Q; O: S+ t, N
classifier.fit(X_train, y_train): B7 F; J0 q% N v7 D1 N' b
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')+ p0 d; f/ m4 d6 |6 G
6 g: I9 j5 u, a% @" E ^y_test_pred = classifier.predict(X_test)
$ K. ]& O7 e% k* m- W4 ?utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')- [/ ^3 i5 G1 _- K* R/ f
. M9 Y) }$ \7 X* {###############################################
& n j# y' A7 I! V7 s3 J& K% X( C# Evaluate classifier performance/ S' H3 @3 V, U3 V4 k
% B9 Y J4 p# l* d
from sklearn.metrics import classification_report
$ H" q0 k3 c6 r( p
1 Y. S! X/ I4 c7 c+ F; ctarget_names = ['Class-' + str(int(i)) for i in set(y)]
: z& U# u8 u! P) M+ Z. j( jprint "\n" + "#"*30 O- j, c/ t% Q5 s, p2 X$ _
print "\nClassifier performance on training dataset\n"5 P' Y, X$ j" D) M( J
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
4 m% z3 O0 ]8 D9 }* }! @ Y( Qprint "#"*30 + "\n"
4 K3 D4 L# Y# K9 [! r( ^1 p: g, |3 f: K0 R
print "#"*30
" O& t4 S P" X2 Rprint "\nClassification report on test dataset\n"1 o. r, Q, M, y/ `
print classification_report(y_test, y_test_pred, target_names=target_names)% D2 \, F, V0 N$ q' i) |
print "#"*30 + "\n"5 V# `2 f5 p: D$ J( i2 E. r
+ C4 [3 c1 }$ P3 T2 e8 w' H
|
|