- 金錢
- 46
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 556
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 46
- 威望
- 3183
- 主題
- 0
|
import numpy as np3 r7 I8 j& f# {# R
import matplotlib.pyplot as plt) H' I2 r7 s% H3 k- g1 f
' j9 B* P" F; Y' |. |8 t+ P
import utilities
( X, i8 w! e: X) W: w
2 n( F/ O+ t7 e5 a& l# Load input data
# k2 h# t# Z& C. a3 G( {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" {! h8 j+ sX, y = utilities.load_data(input_file)
% Q5 H* b1 Y5 B( u* ^; E" D5 y0 V% U/ @$ t% q" @
###############################################
5 l% k: }: P+ s" z' v( F# Separate the data into classes based on 'y'+ E3 ^( u' T" K1 C7 y
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])! m5 H" Q6 y) ^" ^2 ], N
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])* A5 O: Y; ?" `' R( `. ?
6 e& M8 N7 |8 m* n# Plot the input data, O; K" R; E9 A" i6 O, k
plt.figure()
5 c* I3 t) v& Rplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')3 ]4 k* R! ?. p& S& m' {$ E2 B6 c
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')& e# b' l- }5 d. Y
plt.title('Input data')1 F. h! D" m6 x7 ]
: ^3 [! L3 T9 s1 m" e6 n###############################################
# N/ i, z% z# H0 z+ o# Train test split and SVM training0 x. C9 u* \9 f m
from sklearn import cross_validation
1 D: n. }6 x& I& C/ a7 Lfrom sklearn.svm import SVC
' c5 m( E' q3 \ ~, |6 s' _0 k8 g: y- r- L! N( @
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)- c* ?3 r+ n) B6 I/ e" L
. a& r" C- F& c) j/ j) \
#params = {'kernel': 'linear'}
$ {4 {5 r, v' }#params = {'kernel': 'poly', 'degree': 3}$ M8 l% w# ? p
params = {'kernel': 'rbf'}2 i& Q" P4 H; a* Y N6 N3 g
classifier = SVC(**params)$ \, r1 {3 |3 R( ` f
classifier.fit(X_train, y_train)
# ?2 H+ k- A; P4 U3 T# outilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
/ s$ J3 m" |9 a$ v2 z! ]. K- V/ s: W- o& X. {0 M3 z% U
y_test_pred = classifier.predict(X_test)
; J' Q' K# Q6 D8 ]- Dutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
4 V" Y0 F. F& ?. }8 R; F2 p
( v; b8 j" [ j4 k, X0 z8 e, ~: B###############################################, [0 z; C$ b& g x
# Evaluate classifier performance6 ]9 a: X4 L5 w2 |
8 O* z* a9 e( |9 a
from sklearn.metrics import classification_report
# }1 x/ k" a; A
$ C: p3 I. {+ h3 H2 B% C0 r' Qtarget_names = ['Class-' + str(int(i)) for i in set(y)]
' A0 J7 g% A/ _% O; F& I/ Q. |4 ]print "\n" + "#"*30
) {+ ^8 A+ V) i; C7 Eprint "\nClassifier performance on training dataset\n"4 S/ F! }( _. Y0 W( i: W4 s
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
) B9 B* ?4 h4 N) W" V. C ?print "#"*30 + "\n"$ X, u3 F( A+ g2 c7 h
) Q/ k, j7 |2 f- C
print "#"*30
8 v3 p9 ]4 R( p( ~7 S" iprint "\nClassification report on test dataset\n"5 C# I {) J* I6 W
print classification_report(y_test, y_test_pred, target_names=target_names)+ v0 q% A6 W' H5 J$ Z: N& n, C
print "#"*30 + "\n"
% q- T: ]/ @' [ E! `; S* P4 t
" w; Z( ^# T' _$ n |
|