More actions
imported>rabierre No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
[[머신러닝스터디/2016/목차]] | [[머신러닝스터디/2016/목차]] | ||
== 내용 == | == 내용 == | ||
* SVM 실습 with skflow | * SVM 실습 with [http://scikit-learn.org/stable/ sklearn] | ||
** skflow(tensorflow의 contib/learn으로 흡수됨)을 사용하려 했으나 svm모듈 부분이 최신 커밋에만 포함되어 있어 sklearn을 사용하기로 함 | |||
** sklearn 버전은 0.17.1 | |||
$ sudo pip install sklearn | |||
=== 코드 === | |||
import sklearn | |||
from sklearn import svm | |||
#### SVC with rbf kernel | |||
# default is rbf kernel | |||
clf = svm.SVC() | |||
x_data = [[0,0], [0,1], [1,0], [1,1]] | |||
# linear | |||
y_data = [0, 0, 0, 1] | |||
clf.fit(x_data, y_data) | |||
# SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, | |||
# decision_function_shape=None, degree=3, gamma='auto', kernel='rbf', | |||
# max_iter=-1, probability=False, random_state=None, shrinking=True, | |||
# tol=0.001, verbose=False) | |||
clf.predict(x_data) | |||
# array([0, 0, 0, 0]) # wrong | |||
# non-linear | |||
y_data = [0, 1, 1, 0] | |||
clf.fit(x_data, y_data) | |||
clf.predict(x_data) | |||
# array([0, 1, 1, 0]) # Correct answer | |||
#### SVC with Linear kernel | |||
clf = svm.SVC(kernel='linear') | |||
clf.fit(x_data, y_data) | |||
# SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, | |||
# decision_function_shape=None, degree=3, gamma='auto', kernel='linear', | |||
# max_iter=-1, probability=False, random_state=None, shrinking=True, | |||
# tol=0.001, verbose=False) | |||
clf.predict(x_data) | |||
# array([0, 0, 0, 0]) | |||
#### LinearSVC | |||
clf = svm.LinearSVC() | |||
clf.fit(x_data, y_data) | |||
# LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True, | |||
# intercept_scaling=1, loss='squared_hinge', max_iter=1000, | |||
# multi_class='ovr', penalty='l2', random_state=None, tol=0.0001, | |||
# verbose=0) | |||
clf.predict(x_data) | |||
# array([0, 0, 0, 1]) # Correct answer | |||
== 다음 시간에는 == | == 다음 시간에는 == | ||
== 더 보기 == | == 더 보기 == | ||
Revision as of 10:17, 26 July 2016
내용
- SVM 실습 with sklearn
- skflow(tensorflow의 contib/learn으로 흡수됨)을 사용하려 했으나 svm모듈 부분이 최신 커밋에만 포함되어 있어 sklearn을 사용하기로 함
- sklearn 버전은 0.17.1
$ sudo pip install sklearn
코드
import sklearn from sklearn import svm #### SVC with rbf kernel # default is rbf kernel clf = svm.SVC() x_data = [[0,0], [0,1], [1,0], [1,1]] # linear y_data = [0, 0, 0, 1] clf.fit(x_data, y_data) # SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, # decision_function_shape=None, degree=3, gamma='auto', kernel='rbf', # max_iter=-1, probability=False, random_state=None, shrinking=True, # tol=0.001, verbose=False) clf.predict(x_data) # array([0, 0, 0, 0]) # wrong # non-linear y_data = [0, 1, 1, 0] clf.fit(x_data, y_data) clf.predict(x_data) # array([0, 1, 1, 0]) # Correct answer #### SVC with Linear kernel clf = svm.SVC(kernel='linear') clf.fit(x_data, y_data) # SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, # decision_function_shape=None, degree=3, gamma='auto', kernel='linear', # max_iter=-1, probability=False, random_state=None, shrinking=True, # tol=0.001, verbose=False) clf.predict(x_data) # array([0, 0, 0, 0]) #### LinearSVC clf = svm.LinearSVC() clf.fit(x_data, y_data) # LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True, # intercept_scaling=1, loss='squared_hinge', max_iter=1000, # multi_class='ovr', penalty='l2', random_state=None, tol=0.0001, # verbose=0) clf.predict(x_data) # array([0, 0, 0, 1]) # Correct answer