- 金錢
- 45
- 威望
- 3183
- 貢獻值
- 0
- 推廣值
- 0
- 性別
- 保密
- 在線時間
- 38 小時
- 最後登錄
- 2024-2-25
- 主題
- 0
- 精華
- 0
- 閱讀權限
- 70
- 註冊時間
- 2012-3-17
- 帖子
- 553
 
該用戶從未簽到 - 推廣值
- 0
- 貢獻值
- 0
- 金錢
- 45
- 威望
- 3183
- 主題
- 0
|
import numpy as np
+ q: I) u2 T8 n, r% Simport matplotlib.pyplot as plt
& G& Q, r! R- s" C3 c9 a; m6 y4 ?2 s- J8 k
import utilities
, v" L" c4 S u( {6 G
, x& H# i& L+ j, u4 h/ a# Load input data p$ m' S6 {6 U& L3 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'. N2 D/ x( Q7 u+ c
X, y = utilities.load_data(input_file)
9 O/ b# l. N b% s0 |) ^ t! J
G e' p7 z6 Z$ B6 s; g###############################################
: {0 D' s# [; d: @: l8 d% B6 a8 R, d# Separate the data into classes based on 'y'( M" B0 F9 k2 |8 S2 Z
class_0 = np.array([X[i] for i in range(len(X)) if y[i]==0]); t: `, c4 q& h
class_1 = np.array([X[i] for i in range(len(X)) if y[i]==1])
% q4 t/ S, g+ k2 w: f# I% v& `& M& _/ N- w$ j$ m
# Plot the input data) ?5 o( C4 z# R L% w6 J' J5 @' \% X
plt.figure()
* w0 P" F: a @ G9 p2 fplt.scatter(class_0[:,0], class_0[:,1], facecolors='black', edgecolors='black', marker='s')
! ]" h' y9 u y9 }1 k, y$ Aplt.scatter(class_1[:,0], class_1[:,1], facecolors='None', edgecolors='black', marker='s'): \( v5 A% J+ _- B4 N
plt.title('Input data'), e6 Y9 w$ ~# E3 [' z4 G8 X6 L
9 T9 D% P) a$ E/ y' [$ B
###############################################
* S3 v: b& y) K; V- F# Train test split and SVM training9 C- c1 C8 k, O" s; D
from sklearn import cross_validation( a( {: D. O) ` x, f- ?& i. ^
from sklearn.svm import SVC
+ m5 M( K' z0 |8 W9 W+ H% M% E# G ?8 X) T. m- q. ?
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.25, random_state=5)& z$ b9 X. u4 J; `
# ^- X% {- i% p; U# [5 w! c1 i# g' l#params = {'kernel': 'linear'}
; o4 G; T* Z9 E) w8 ]4 e1 D#params = {'kernel': 'poly', 'degree': 3}/ w" n) b" v4 @: C1 {4 G+ W
params = {'kernel': 'rbf'}( K. W6 V3 `. r( b' G, I
classifier = SVC(**params)
j5 X+ a! L; \4 q/ Z3 k5 tclassifier.fit(X_train, y_train): K. O$ p) Y) X, H- e) |6 q
utilities.plot_classifier(classifier, X_train, y_train, 'Training dataset')- ~2 q- ~* S/ O' ?: `1 y
2 a# b: [& [- a9 l P
y_test_pred = classifier.predict(X_test)
: [8 p0 A, n% W' a/ |/ b }) b' eutilities.plot_classifier(classifier, X_test, y_test, 'Test dataset')' d9 y8 v0 t' V# F. {/ q/ [& Y
% s! x6 H6 P' l, U$ }###############################################
- B- h& r- ]7 h, R2 [# Evaluate classifier performance9 }+ f Y& y! L, l D; o' M
9 q: l! E2 j8 v* z, o" k4 v) C8 wfrom sklearn.metrics import classification_report
1 |# O, A8 B9 {& k- |' ^, r* [: B M# ?; |
target_names = ['Class-' + str(int(i)) for i in set(y)]6 d1 u' m; R# ~( T6 F$ \
print "\n" + "#"*30, B2 k6 c/ u7 x3 I/ Z* m
print "\nClassifier performance on training dataset\n"
: ]" a- j6 e: z# h' Q& ~4 W' ?print classification_report(y_train, classifier.predict(X_train), target_names=target_names)
6 C( T+ X8 Y9 p3 Oprint "#"*30 + "\n"
1 s0 K4 [# y* Q- ~9 V# @
. E' M) B0 F. P6 u* |) {. u0 mprint "#"*30! W% }/ r5 F8 n4 P2 Z
print "\nClassification report on test dataset\n": N! C, O& S/ u9 H! b3 o8 C0 r
print classification_report(y_test, y_test_pred, target_names=target_names)
. H/ R3 X% ~2 t$ {4 x+ Tprint "#"*30 + "\n": L# w# \( a/ P4 n0 {
; t8 W# o! C; m! p( q
|
|