oikakerublogの日記

知識ゼロから色々しらべてみた話し

Python XORゲートをSVMで学習させる(「Pythonによるスクレイピング&機械学習」150ページ)

f:id:oikakerublog:20170901125801j:plain

◆目的:
・XORゲートをSVMで学習させる。

◆XORゲート
・排他的論理和の論理ゲート。
f:id:oikakerublog:20170901133316p:plain

◆コード全体

#socym本の写経、p.150 2017-9-1
#サポートベクターマシンsvmのインポート
from sklearn import svm

#データの用意
xor_data = [
    [0, 0, 0],
    [0, 1, 1],
    [1, 0, 1],
    [1, 1, 0],
]

data = []
label =[]

#インプットと正解とを分ける 
#1行目から順に要素を抜きリストに追加していく(?)
for row in xor_data:
    x = row[0]
    y = row[1]
    z = row[2]
    data.append([x,y])
    label.append(z)

#どんな感じになっているか一旦表示
print("data の中身=>", data) 
print("labelの中身=>",label)

#svmアルゴリスム利用
#svmのオブジェクトを得て、fitメソッドでデータを学習
#fitメソッド・・・(データ配列,ラベル配列)
clf =  svm.SVC()
clf.fit(data,  label)

#データの予測
#predictメソッド・・・予測したいデータ配列を与えると、データの数だけ予測を返す
pred = clf.predict(data)
print("予測結果=", pred)

結果:
data の中身=> [[0, 0], [0, 1], [1, 0], [1, 1]]
labelの中身=> [0, 1, 1, 0]
予測結果= [0 1 1 0]

◆キーワード:
[scikit-learn、サイキットラーン、svm、fitメソッド、predictメソッド、機械学習、XOR演算]

◆参考:
・「Pythonによるスクレイピング&機械学習」、150頁~、ソシム本

f:id:oikakerublog:20170901135754p:plain

(2017.9.1.)