- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
. g( @9 C# G/ B- j1 Gimport matplotlib.pyplot as plt
, ]% q$ R8 ~9 P! I. \- F( ]0 E; a% {! o5 i
import utilities
0 h( c, W2 N2 b7 U. s0 M: `
N0 a u' I! p& \9 z, }% W4 Y# Load input data# w. ]! j6 B, c0 I6 ^
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'+ T) h# K- ?' d: {
X, y = utilities.load_data(input_file)+ `* ], C; m6 `3 f ~# P/ a
4 d) T) B! m& _3 C###############################################
0 [7 u. J6 p5 ?! ]1 S* }# Separate the data into classes based on 'y'
- I2 [- M" p R/ O5 Uclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
: H7 ^% S/ [7 h+ J3 D) Nclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
7 s. [4 {4 B: e( s2 V( T# v0 L, j0 n4 X" a/ v% [" }
# Plot the input data
' _3 Z7 k) n6 J; ~plt.figure()
* ^2 `. X6 _; \9 Z3 Y$ s8 }plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')* E& z6 ^ E4 j
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')
2 ^1 D# X3 e4 b, W2 i, b" x' yplt.title('Input data') c& O2 v& r' a% q
4 L4 N( P$ o' e X. _/ |* u* y###############################################7 Z2 h b# W; s
# Train test split and SVM training" J8 Z! s# u# c$ E
from sklearn import cross_validation
8 [! q% W4 d& pfrom sklearn.svm import SVC
: Y" n, N3 P- [ x* y3 |3 i& K0 ]- g" U6 z6 e! F$ o
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)" ~% Y8 V/ {4 ~6 R3 r6 a
# R) f9 ~/ O, a1 k* u9 K2 y
#params = {'kernel': 'linear'}
: i/ `0 k; V% i o#params = {'kernel': 'poly', 'degree': 3}
: B/ \0 Y$ @; \7 H M( Q# K0 Jparams = {'kernel': 'rbf'}8 c6 I' R! t6 ^1 @( P7 P* K( B. ^1 g
classifier = SVC(**params)/ V4 j0 k2 [+ r- j3 Z
classifier.fit(X_train, y_train)
- _0 C' u4 Y2 futilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
' w1 b# h w/ [
- J8 F" w& l6 D* G/ my_test_pred = classifier.predict(X_test)
, Z# f5 K3 a1 T. P' S" dutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')' O4 U' x- b3 e% E- x) G
. D8 q, }4 a5 L7 _7 ~; B& K
###############################################( E6 L6 Q9 C( j$ K+ J# K# R, P0 k+ O
# Evaluate classifier performance
3 [7 z' }1 T0 ?% P8 R9 a# p8 P/ F' c
from sklearn.metrics import classification_report) U9 ~& y7 F( O) w- F
" Z" |5 I: A6 _9 N6 F# _* ftarget_names = ['Class-' + str(int(i)) for i in set(y)]
- g# H6 Y$ C1 A( jprint "\n" + "#"*308 c. {4 d8 |6 ?/ F$ j$ l) s+ U Z
print "\nClassifier performance on training dataset\n"
9 c& t0 i. d3 N$ ?0 F/ _1 M, Jprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)
9 b8 Y+ j% P( [( O# O/ l+ Hprint "#"*30 + "\n"
! V0 f" J) B$ g( l" ?/ c f$ T9 ]; ?. T. ^( j y3 T
print "#"*30
8 V; f% N- ]. J$ Q( I+ Vprint "\nClassification report on test dataset\n"
$ q# R' O E% ^5 H% @& j0 f1 Kprint classification_report(y_test, y_test_pred, target_names=target_names)9 ?; ]. o+ }1 G5 T/ ]
print "#"*30 + "\n"
, S5 |2 u' q A, g) W; v3 T0 L5 S7 R- Q% S
|
|