- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
4 h3 _7 E' ~; X" E$ f$ Bimport matplotlib.pyplot as plt
+ J3 E9 [) P0 u8 R* }5 g d! E" Z
import utilities
4 w, }$ s. M: X# C
& E1 X2 d, o, l8 e7 k! h# Load input data
6 ]+ t# D a e$ _. t, a( C 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'0 t3 L6 r7 [7 L1 A6 K' w, n9 ?* G
X, y = utilities.load_data(input_file)
& y6 ~ t1 W7 r; D7 S. P/ m
4 ^$ F+ J6 l7 `###############################################& x) u; J2 ]# @4 R: D" D3 b
# Separate the data into classes based on 'y' {$ ~& s3 ^ }
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
; c* |7 E, c8 H& A' z+ q" rclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])- `5 Q9 ^6 j0 N+ S$ t: y! E
" o' w3 r$ \, s8 @' y# Plot the input data; w3 H q3 X$ O; U3 l0 l y* i
plt.figure(). X! d# ]4 n8 P; v5 }/ j: ]" `
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
) ^# u& _1 L9 U9 O* P' gplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
7 c, {) v8 S' ?# q$ P0 x: X$ Splt.title('Input data')7 x/ r$ c# R) {+ @6 q/ s
1 r( @$ ?2 {5 ]###############################################1 f+ v! U; j& O( y( U+ G' K* A
# Train test split and SVM training' V/ T, Y. \2 }7 F/ I7 d9 x i2 t. x6 @
from sklearn import cross_validation/ S9 X$ ]! k0 J4 A# q$ n4 E8 }- z
from sklearn.svm import SVC1 i6 M$ X/ B) U# }% \4 u) v4 n
w! h# W: |# g! e3 ?& _8 g
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)
; `2 P; s0 k" p- O: C( U: o: d. K: x# y
#params = {'kernel': 'linear'}# G$ _7 ], D( O$ N
#params = {'kernel': 'poly', 'degree': 3}
& W7 A3 s' }9 ~/ |5 E9 O& Q- hparams = {'kernel': 'rbf'}0 A& H% |% R3 l
classifier = SVC(**params) a8 P4 m* t8 R& [8 Z5 A
classifier.fit(X_train, y_train)) Z- L1 S8 O( k' ?* X) j
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')/ r' g) i% ]: K; L6 j% g
$ |4 y7 S: `9 I& Gy_test_pred = classifier.predict(X_test)6 i7 G* N+ S# Y7 f Q
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')" t) q% a2 {' K
. F9 X( u3 y- E1 p0 e7 K( d# O###############################################- J4 o6 Z* U/ H. @4 k0 U
# Evaluate classifier performance
2 _3 ~% _0 v/ `) N
/ P R8 Q: @' y) c% jfrom sklearn.metrics import classification_report/ r8 {9 u8 ~0 p# S$ Y" U3 z5 Y
0 Y1 ~. U3 I$ T
target_names = ['Class-' + str(int(i)) for i in set(y)]4 w: M" g/ n8 v) Y( e
print "\n" + "#"*30; y$ f) Q2 r7 k- r
print "\nClassifier performance on training dataset\n"2 i9 n6 o5 s2 G4 J' U+ X4 T* R
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)2 y3 V; ?2 V# a; l* m7 p7 n2 ?
print "#"*30 + "\n"
4 w; l# k+ S% }) b1 C$ B/ h: O& k4 g% l7 L- Z
print "#"*30- j+ O) A, B7 Q& \
print "\nClassification report on test dataset\n" q1 `# d+ Y0 ?% m& {0 z
print classification_report(y_test, y_test_pred, target_names=target_names): n3 x( P p; V L2 B* h5 R
print "#"*30 + "\n" `- U/ R, L4 T! m) x" N2 f
3 t* ~& B# s- H( n5 ]* H3 q# h1 S
|
|