- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
+ X7 ]9 |7 m% r( i; M3 oimport matplotlib.pyplot as plt
! M4 \3 o/ l3 S1 R2 s6 Q0 s
2 Q) D# j9 X. k9 {import utilities
& N0 P9 R$ j0 k, f; v0 p7 a# F9 Z7 d) X3 V. N% G0 B" Z: M7 A; [
# Load input data) T K' F" s! q6 V8 G- ? K# X- `- w2 ]8 |
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
& g' Y& p# R2 t5 B4 S, r$ yX, y = utilities.load_data(input_file)- ?$ F' P3 A; e! [$ J
5 ^, d0 U3 Z& v/ c
###############################################
/ x" F3 |& T Z4 r# Separate the data into classes based on 'y'
- ~# }) `1 s) v4 F; u. Vclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
& |) _+ P1 N8 l2 ?; w: gclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
( i; _6 J* ]. Y( c8 j6 V1 z. J) C7 `) O: H
# Plot the input data8 k& [# p) Z+ G. P3 E, \0 Q
plt.figure()
; o5 [. v- R9 z9 z" cplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')( r4 m: v. i+ ?: o' ]; {" D6 H" S* Y
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')' n( ?1 `9 Y* `7 C/ j
plt.title('Input data')+ I: D4 S' ~* l( h0 H6 R
* }2 Q5 K1 Q( ^( j# e& L- {( e3 W
###############################################
( e( X* }& [* s# Train test split and SVM training
: b" g8 }5 j( G; c; wfrom sklearn import cross_validation
6 T9 c* r" j: Dfrom sklearn.svm import SVC- H; ]3 K% S( M2 Z
4 J9 P1 l- q; u( r! ~4 e
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
/ `6 Q# Y t/ V
6 `! ]' @0 L% g/ i& T3 I9 a#params = {'kernel': 'linear'}( V/ N1 y9 N: L; G& j
#params = {'kernel': 'poly', 'degree': 3}9 u- ]) i2 a- t/ j) P$ M2 D
params = {'kernel': 'rbf'}
" g6 K) _' }9 b" V: cclassifier = SVC(**params)
3 t- Z: T6 Q0 a5 F% O! nclassifier.fit(X_train, y_train)
+ A! \. z; [" [. X3 j, f, i. E$ Outilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
v5 n; A* Z" y1 d0 o; ?3 K' ?4 j, D, W; T; [
y_test_pred = classifier.predict(X_test)
) l" {! K5 x: b* ^* m( o5 Butilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
( i4 H9 A7 }$ K8 u8 R
1 M3 |' Z$ q3 u! l9 x, ~###############################################
; M8 l: F# D/ I+ ~+ e0 }) Z8 F% |# Evaluate classifier performance
" h9 x6 P( E. r( P: ?- m7 D9 j8 _ r3 Q4 r- S1 `3 u- F7 I
from sklearn.metrics import classification_report, D8 N" P- D! X9 }' Q
5 _$ H2 {3 C; }target_names = ['Class-' + str(int(i)) for i in set(y)]
' j; }' ?/ [9 Sprint "\n" + "#"*30
+ p6 I% k9 @! K0 v: xprint "\nClassifier performance on training dataset\n"" F8 D: }* X9 p7 s
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)( `1 i O9 Z. W0 S
print "#"*30 + "\n"
m6 L0 N9 ^% u+ S: N' h' c7 B( k3 B* g0 N# ~/ }
print "#"*300 a& u, q7 }, {1 }! k7 C5 t3 ]( L: T8 l
print "\nClassification report on test dataset\n"
! H2 @0 R+ l9 Y7 ]' R2 {print classification_report(y_test, y_test_pred, target_names=target_names); ~5 C: H0 f. b
print "#"*30 + "\n"
' o2 |2 g' q& Z, i4 A6 V( v. t) b3 F* y% i
|
|