- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
6 \7 R1 C$ \" x4 L4 `' Pimport matplotlib.pyplot as plt
! b& K8 O" q; h+ z" b' f3 C
: _: [: c7 x$ p% n" jimport utilities
7 J- v7 j! L, A# Z" J1 @8 ^# d3 ?2 o% s
# Load input data$ v& [5 K7 m0 {
input_file = 'D:\\1.Modeling material\\Py_Study\\2.code_model\\Python-Machine-Learning-Cookbook\\Python-Machine-Learning-Cookbook-master\\Chapter03\\data_multivar.txt'
: m4 F+ S# K1 I) Q- B0 h5 V5 d2 iX, y = utilities.load_data(input_file)
2 {# Z$ \! ]% v& a3 i4 w/ |4 Z& C R4 X7 }0 J
###############################################! A! i; v* b# ]& C W: V( H
# Separate the data into classes based on 'y'
5 E! \5 r w2 g* l. dclass_0 = np.array([X[i] for i in range(len(X)) if y[i]==0]) g$ z/ i i: v+ V6 K ]' e# B/ \
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
! J2 r5 o! i6 e2 X: ~) W: C( n# {+ L9 B& k
# Plot the input data9 p! E, l; q5 o) W" Q/ [
plt.figure()6 N6 k! O/ F9 R& V
plt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
4 p6 b, R+ ]& Eplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s')! Z, Y8 X) D6 ]( q! Y
plt.title('Input data')
1 X9 @3 f7 p/ ]3 ?9 I+ p$ N* p/ p7 o& @5 p, S+ X" e
###############################################$ r' [1 e8 e4 ]; _
# Train test split and SVM training! o- R( I$ X& x- S9 o* `: w- F
from sklearn import cross_validation- ]5 `# B1 I2 b4 V
from sklearn.svm import SVC
3 ~; o U, k( w' f* R+ p: x
' E: H% _2 X6 }. r* K( nX_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)* a, u1 w1 s6 t1 W) e
# i4 P+ A3 ~! |) V5 k3 ^* @
#params = {'kernel': 'linear'}
) _5 g8 z3 ] A6 U+ @6 x* N! Y#params = {'kernel': 'poly', 'degree': 3}
, k6 R9 q* P* t8 y1 {& p" ~4 oparams = {'kernel': 'rbf'}! N' D9 S1 n+ u8 h6 ^) z7 Z2 L
classifier = SVC(**params)2 g: N7 U" z/ [5 u; F! x; F
classifier.fit(X_train, y_train)- ]! E# r. j0 `0 A
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')" N4 p6 X& }/ t1 a% S8 ]
( H" i; \1 m6 x% {( d
y_test_pred = classifier.predict(X_test)
; e4 h4 q. \2 V: {9 vutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')) N5 E' N7 v; K5 W% j% g1 _
1 ^( L, B; k/ M+ V###############################################
* ]/ K2 {5 H: O. I9 p4 t# Evaluate classifier performance
: [* \! \- r6 |1 ]3 y& t' G% i# ^9 Q$ ^1 ?9 w* m
from sklearn.metrics import classification_report
; K+ ^" B9 q( l3 L7 x, \ {9 m3 u7 t C1 a
target_names = ['Class-' + str(int(i)) for i in set(y)]
9 N) f7 k9 B6 N8 P6 K! r' Nprint "\n" + "#"*30. S. z6 v- k; ?: G3 }1 T( V
print "\nClassifier performance on training dataset\n"
6 K4 m0 ^' F. x8 s y0 x' G- D: Yprint classification_report(y_train, classifier.predict(X_train), target_names=target_names)& b4 m% u& H$ y! t5 d5 N+ m$ p7 @
print "#"*30 + "\n"( D( w1 P& c8 V4 E2 n7 O
4 h! S% R, c' |' @8 J
print "#"*30- e! Q" q7 O5 ` M
print "\nClassification report on test dataset\n"
6 m) m* s+ h( g0 w( b8 eprint classification_report(y_test, y_test_pred, target_names=target_names)
' z" j& k, |* b* lprint "#"*30 + "\n"4 y! d1 ]+ W/ I. A) Z/ S
4 |; p0 `& }0 B5 T9 M7 u- K/ |
|
|