- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np5 S! O/ q. n! G
import matplotlib.pyplot as plt
0 m& ^6 m- |4 J. C% f+ y5 s# x5 ^1 w5 W: |! x
import utilities - t) W2 P1 F: u; b; ^
& B! e# H: e u( ]# Load input data
, r, L* X P+ e2 ^) cinput_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'* E" C" h3 U# o* l, f% J. d) T
X, y = utilities.load_data(input_file)& A/ j4 w( }4 j6 H$ x ?
6 g$ I8 S/ R5 y
###############################################, v6 s" S2 |" `0 l$ T8 }
# Separate the data into classes based on 'y'
: \- O J9 S8 }2 p" c6 q9 Mclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])4 X0 Z2 ]' `8 N% x C" [
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
8 v5 N- i- c& Y% A6 r% @6 y/ m9 S# q: P
# Plot the input data
7 G ^: x& R6 B* U! ?. @2 Lplt.figure()
3 o0 @0 S! o8 Lplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
2 b6 |5 \) B" n, J+ \plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s'). L E8 Q9 p" a$ L0 E
plt.title('Input data')5 V. E3 B: O- y) d/ F, j
7 _ k4 H& A' Q% y& }
###############################################; H& r4 ^( c" c3 l7 K) y7 S. W
# Train test split and SVM training) X; o6 K" b, u
from sklearn import cross_validation
. a1 w! \4 s8 c0 ifrom sklearn.svm import SVC
! L% O7 j' k4 c6 ^$ M+ M0 t* P. @. Q3 `5 H% q7 l( b" D$ ^7 o
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)4 _' n. g, ]1 i) o
3 a! Q+ p K/ c9 _8 R' U7 K#params = {'kernel': 'linear'}
2 N# R* o6 O- ?#params = {'kernel': 'poly', 'degree': 3}! _" g0 D" d. C$ C! M C2 z
params = {'kernel': 'rbf'}( u, A6 `" \. P) w, w# y
classifier = SVC(**params)
. W) r$ N" M+ f( ?9 W- l9 hclassifier.fit(X_train, y_train)+ i5 u' R1 |0 q5 g
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
9 Q0 B7 e; T4 ~
0 t* O- A L+ K' b; A0 by_test_pred = classifier.predict(X_test)$ Q# r: ~' @" M9 {
utilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')
) d$ h4 }/ m9 K; h1 U' v& y# A3 t9 V' i5 D0 @
###############################################
7 _1 U" Q7 k7 j( g3 i! A( T" k# Evaluate classifier performance
! P3 b. v$ @* @
0 V; g( B7 x( E, Q$ o& @) gfrom sklearn.metrics import classification_report
: X% F# G8 t" G1 i, ]5 s: Y1 b3 |: |* o! h/ J: P
target_names = ['Class-' + str(int(i)) for i in set(y)]- M5 {$ o% g* d$ G
print "\n" + "#"*30& a( e+ g# j) D
print "\nClassifier performance on training dataset\n"5 k4 n0 H* `! g5 ~
print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
+ F' B0 L' z( E- h3 Yprint "#"*30 + "\n". `! j$ r9 R$ W4 [
1 b- u4 W4 _2 K0 e; I1 _
print "#"*30! V1 z7 v* Q q: K$ s
print "\nClassification report on test dataset\n"' T; X: q$ l% b/ ?( m: |# V7 B" ]
print classification_report(y_test, y_test_pred, target_names=target_names)( A1 j' ?% S- Q4 \- b( R9 S3 q
print "#"*30 + "\n"( @) r2 U, l) n/ D& l
% U) U9 ?. _9 h U( L" ~# c |
|