こんにちは。初心者です。
あるサービス(念写できる人と何か念写してほしい人のマッチングサービスです)で機械学習ためそうと思っていて、調べている最中です。
問題
試しに、これの1問目を解くよー。
教師あり学習の問題です。上記ページの回答例のように、SVMを使ってみます。
ライブラリは、scikit-learnを使ってみた。
SVM使いたいだけならほかにもライブラリあるみたいだけど、scikit-learnいいよ~的なことを言う人が多いので使ってみました。
とりあえずやってみる
# -*- coding: utf-8 -*-
from sklearn.svm import LinearSVC
import numpy as np
# 学習データ
data_training_tmp = np.loadtxt('CodeIQ_auth.txt', delimiter=' ')
data_training = [[x[0], x[1]] for x in data_training_tmp]
label_training = [int(x[2]) for x in data_training_tmp]
# 試験データ
data_test = np.loadtxt('CodeIQ_mycoins.txt', delimiter=' ')
# 学習
estimator = LinearSVC(C=1.0)
estimator.fit(data_training, label_training)
# 予測するよー
label_prediction = estimator.predict(data_test)
print(label_prediction)
[1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1]
例題のページにはRでの解答が載っているけど、scikit-learnでもほぼ同じ感じでいけました。
ほかの分類器も同じ感じで使えるっぽい。とてもいいね!
超絶参考になったサイト
http://sucrose.hatenablog.com/entry/2013/05/25/133021
ところであってんの?
ほんとは、未知データでの予測出す前に、分類器の精度を確認しないとあってるかどうか分からない。確認する必要がある。
っていうかパラメタもチューニングしないといけない。
ちょっとやってみたけど、これ学習用のデータが検証するには少なすぎるのかそれとも簡単すぎるのか、パラメタ変えても大体100%当たってしまってチューニングしてる感が全くありませんでした。
また別のデータでやります。
今日はおしまい