- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
8 p7 E# a/ ^# I2 Gimport matplotlib.pyplot as plt
* Y' l( Y$ k7 o* F9 j' m7 Q5 ?8 U
! C5 T r- C+ b+ Kimport utilities
! a. J) m1 w5 H, D& |; q' P3 c& ?( a5 V
# Load input data4 T( I5 Q1 b: c5 n
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
5 h8 d( c9 `- XX, y = utilities.load_data(input_file)
! e& P6 R, O! `" B5 F8 e1 y2 l& M$ L; z* A& o- B* l2 t1 |
###############################################
0 o" N! [, b/ b3 q# Separate the data into classes based on 'y'* k* B, [2 C" I9 f6 U3 i# D: s |
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0])
! Q+ K& P: x$ Y( X( U( \1 bclass_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])& Y! l% s* C* ~! t) S t/ I( o
) t% \$ J0 Z! [ T6 z+ M0 o( H# Plot the input data
7 |, Z/ C; B. W/ hplt.figure()0 B4 M7 ?+ M% B+ l
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')7 _& T0 d$ e2 I I# A, t8 U/ _
plt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')# z( m5 X, T1 e3 f/ }6 H& Y
plt.title('Input data')
& v$ F! h a( T4 X# ]7 u' @1 y# i9 n# \# V, ]6 t5 n/ d, E
###############################################
+ a; m$ Q0 |. S' w7 i2 S9 g# Train test split and SVM training: O7 G: v* k- Q9 ~: w3 i' d
from sklearn import cross_validation9 D" o) |: I' ]7 |
from sklearn.svm import SVC2 |; `7 r3 }+ R8 Z
0 {7 o# i+ v6 x* ~1 E) g" R
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)" g* w7 @0 Q4 I1 ^3 B
7 [$ H3 w" s) p' o1 R#params = {'kernel': 'linear'}1 H4 M( O8 o* K* O9 r3 X0 V" G% I
#params = {'kernel': 'poly', 'degree': 3}/ G( k- d8 a9 \; f. L
params = {'kernel': 'rbf'}& v% o7 G* A( B; H
classifier = SVC(**params)
0 B$ R$ g! f; N; o! C# F6 t$ s- Rclassifier.fit(X_train, y_train)
8 |; ~- c1 ^- N' a- r5 mutilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')
) T- M4 F# V. G; J8 B8 v) v, u0 Y# v5 ?2 e" p2 t/ a
y_test_pred = classifier.predict(X_test)
$ u- t T6 F2 @$ U7 Z! e. ?$ k2 rutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')# j, r+ u; ^! ]
+ g0 z& D7 i3 l
###############################################& n: V2 ]+ j# T4 E
# Evaluate classifier performance
/ d0 q5 q' O2 i4 _. q* s
5 u/ p' [% }5 K" [* q) C1 ffrom sklearn.metrics import classification_report
; W) i. ]. m% ^* H: i7 l- R
( [1 a+ d- ?" H! b9 Qtarget_names = ['Class-' + str(int(i)) for i in set(y)]5 ~2 c: h" z- }: \3 U& }2 X
print "\n" + "#"*30
( l9 G1 N( i3 z* q' Q7 eprint "\nClassifier performance on training dataset\n"
5 V) v* v; P7 Fprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)
3 Y* I4 @9 P+ P L. u( Z* V! m0 zprint "#"*30 + "\n"
+ H. u* e4 U K- q1 l: V/ o9 d5 C# ?: U0 D8 U6 T; t+ u' N
print "#"*30
u$ a( R% ?- d0 K0 C$ i5 C/ T7 Iprint "\nClassification report on test dataset\n"
% F/ A! _2 X/ Yprint classification_report(y_test, y_test_pred, target_names=target_names)) C" l! a) o) v% V8 u: P3 r- |
print "#"*30 + "\n"
' W4 b" |2 M; d, o/ b$ G7 }# w# @' v6 ]( ~
|
|