Skip to content

Latest commit

 

History

History
232 lines (212 loc) · 4.71 KB

04-01 支援向量機.md

File metadata and controls

232 lines (212 loc) · 4.71 KB

04-01 支援向量機

執行結果:

GitHub Logo

(1)main.py

import numpy as np
from sklearn import svm

#--------------------------------------------------------------------------------------------
# 讀取鳶尾花資料
# 花萼長, 花萼寬, 花瓣長, 花瓣寬, 花種編號 (山鳶尾花:1, 變色鳶尾花:2, 維吉尼亞鳶尾花:3)
#--------------------------------------------------------------------------------------------
data=np.genfromtxt('iris.csv',  names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'classes'], delimiter=',')

#--------------------
# 亂數重排資料
#--------------------
np.random.shuffle(data)

#--------------------------------
# 將資料分成訓練資料及測試資料
#--------------------------------
training_data=data[:120]
testing_data=data[120:]

#--------------------------------
# 取出訓練資料的特徵
#--------------------------------
f1=training_data['sepal_width']
f2=training_data['sepal_length']
X=np.vstack([f1,f2]).T
print(X)

#--------------------------------
# 取出訓練資料的標籤
#--------------------------------
Y = training_data['classes']
print(Y)

#--------------------------------
# 建立分類模型
#--------------------------------
clf = svm.SVC(kernel='rbf', gamma=1, C=1)
clf.fit(X, Y)
print(clf)

#--------------------------------
# 取出測試資料的特徵
#--------------------------------
t1=testing_data['sepal_width']
t2=testing_data['sepal_length']
X_testing=np.vstack([t1,t2]).T

#--------------------------------
# 以分類模型進行預測
#--------------------------------
forecast=clf.predict(X_testing)

#--------------------------------
# 印出預測結果
#--------------------------------
print('預測品種')
print(forecast)

print('正確品種')
print(testing_data['classes'])

print('正確個數')
print(np.sum(forecast==testing_data['classes']))

(2)webTraffic.csv

5.1,3.5,1.4,0.2,1 
4.9,3.0,1.4,0.2,1 
4.7,3.2,1.3,0.2,1 
4.6,3.1,1.5,0.2,1 
5.0,3.6,1.4,0.2,1 
5.4,3.9,1.7,0.4,1 
4.6,3.4,1.4,0.3,1 
5.0,3.4,1.5,0.2,1 
4.4,2.9,1.4,0.2,1 
4.9,3.1,1.5,0.1,1 
5.4,3.7,1.5,0.2,1 
4.8,3.4,1.6,0.2,1 
4.8,3.0,1.4,0.1,1 
4.3,3.0,1.1,0.1,1 
5.8,4.0,1.2,0.2,1 
5.7,4.4,1.5,0.4,1 
5.4,3.9,1.3,0.4,1 
5.1,3.5,1.4,0.3,1 
5.7,3.8,1.7,0.3,1 
5.1,3.8,1.5,0.3,1 
5.4,3.4,1.7,0.2,1 
5.1,3.7,1.5,0.4,1 
4.6,3.6,1.0,0.2,1 
5.1,3.3,1.7,0.5,1 
4.8,3.4,1.9,0.2,1 
5.0,3.0,1.6,0.2,1 
5.0,3.4,1.6,0.4,1 
5.2,3.5,1.5,0.2,1 
5.2,3.4,1.4,0.2,1 
4.7,3.2,1.6,0.2,1 
4.8,3.1,1.6,0.2,1 
5.4,3.4,1.5,0.4,1 
5.2,4.1,1.5,0.1,1 
5.5,4.2,1.4,0.2,1 
4.9,3.1,1.5,0.1,1 
5.0,3.2,1.2,0.2,1 
5.5,3.5,1.3,0.2,1 
4.9,3.1,1.5,0.1,1 
4.4,3.0,1.3,0.2,1 
5.1,3.4,1.5,0.2,1 
5.0,3.5,1.3,0.3,1 
4.5,2.3,1.3,0.3,1 
4.4,3.2,1.3,0.2,1 
5.0,3.5,1.6,0.6,1 
5.1,3.8,1.9,0.4,1 
4.8,3.0,1.4,0.3,1 
5.1,3.8,1.6,0.2,1 
4.6,3.2,1.4,0.2,1 
5.3,3.7,1.5,0.2,1 
5.0,3.3,1.4,0.2,1 
7.0,3.2,4.7,1.4,2 
6.4,3.2,4.5,1.5,2 
6.9,3.1,4.9,1.5,2 
5.5,2.3,4.0,1.3,2 
6.5,2.8,4.6,1.5,2 
5.7,2.8,4.5,1.3,2 
6.3,3.3,4.7,1.6,2 
4.9,2.4,3.3,1.0,2 
6.6,2.9,4.6,1.3,2 
5.2,2.7,3.9,1.4,2 
5.0,2.0,3.5,1.0,2 
5.9,3.0,4.2,1.5,2 
6.0,2.2,4.0,1.0,2 
6.1,2.9,4.7,1.4,2 
5.6,2.9,3.6,1.3,2 
6.7,3.1,4.4,1.4,2 
5.6,3.0,4.5,1.5,2 
5.8,2.7,4.1,1.0,2 
6.2,2.2,4.5,1.5,2 
5.6,2.5,3.9,1.1,2 
5.9,3.2,4.8,1.8,2 
6.1,2.8,4.0,1.3,2 
6.3,2.5,4.9,1.5,2 
6.1,2.8,4.7,1.2,2 
6.4,2.9,4.3,1.3,2 
6.6,3.0,4.4,1.4,2 
6.8,2.8,4.8,1.4,2 
6.7,3.0,5.0,1.7,2 
6.0,2.9,4.5,1.5,2 
5.7,2.6,3.5,1.0,2 
5.5,2.4,3.8,1.1,2 
5.5,2.4,3.7,1.0,2 
5.8,2.7,3.9,1.2,2 
6.0,2.7,5.1,1.6,2 
5.4,3.0,4.5,1.5,2 
6.0,3.4,4.5,1.6,2 
6.7,3.1,4.7,1.5,2 
6.3,2.3,4.4,1.3,2 
5.6,3.0,4.1,1.3,2 
5.5,2.5,4.0,1.3,2 
5.5,2.6,4.4,1.2,2 
6.1,3.0,4.6,1.4,2 
5.8,2.6,4.0,1.2,2 
5.0,2.3,3.3,1.0,2 
5.6,2.7,4.2,1.3,2 
5.7,3.0,4.2,1.2,2 
5.7,2.9,4.2,1.3,2 
6.2,2.9,4.3,1.3,2 
5.1,2.5,3.0,1.1,2 
5.7,2.8,4.1,1.3,2 
6.3,3.3,6.0,2.5,3 
5.8,2.7,5.1,1.9,3 
7.1,3.0,5.9,2.1,3 
6.3,2.9,5.6,1.8,3 
6.5,3.0,5.8,2.2,3 
7.6,3.0,6.6,2.1,3 
4.9,2.5,4.5,1.7,3 
7.3,2.9,6.3,1.8,3 
6.7,2.5,5.8,1.8,3 
7.2,3.6,6.1,2.5,3 
6.5,3.2,5.1,2.0,3 
6.4,2.7,5.3,1.9,3 
6.8,3.0,5.5,2.1,3 
5.7,2.5,5.0,2.0,3 
5.8,2.8,5.1,2.4,3 
6.4,3.2,5.3,2.3,3 
6.5,3.0,5.5,1.8,3 
7.7,3.8,6.7,2.2,3 
7.7,2.6,6.9,2.3,3 
6.0,2.2,5.0,1.5,3 
6.9,3.2,5.7,2.3,3 
5.6,2.8,4.9,2.0,3 
7.7,2.8,6.7,2.0,3 
6.3,2.7,4.9,1.8,3 
6.7,3.3,5.7,2.1,3 
7.2,3.2,6.0,1.8,3 
6.2,2.8,4.8,1.8,3 
6.1,3.0,4.9,1.8,3 
6.4,2.8,5.6,2.1,3 
7.2,3.0,5.8,1.6,3 
7.4,2.8,6.1,1.9,3 
7.9,3.8,6.4,2.0,3 
6.4,2.8,5.6,2.2,3 
6.3,2.8,5.1,1.5,3 
6.1,2.6,5.6,1.4,3 
7.7,3.0,6.1,2.3,3 
6.3,3.4,5.6,2.4,3 
6.4,3.1,5.5,1.8,3 
6.0,3.0,4.8,1.8,3 
6.9,3.1,5.4,2.1,3 
6.7,3.1,5.6,2.4,3 
6.9,3.1,5.1,2.3,3 
5.8,2.7,5.1,1.9,3 
6.8,3.2,5.9,2.3,3 
6.7,3.3,5.7,2.5,3 
6.7,3.0,5.2,2.3,3 
6.3,2.5,5.0,1.9,3 
6.5,3.0,5.2,2.0,3 
6.2,3.4,5.4,2.3,3 
5.9,3.0,5.1,1.8,3