Python scikit-learn - 排他的論理和(XOR)演算を学習する

機械学習で排他的論理和(XOR)を学習します。

排他的論理和(XOR)とは、2つの入力のどちらか片方が真で、もう片方が偽の時には結果が真となり、両方とも真あるいは両方とも偽のときには偽となる演算です。

排他的論理和(XOR)演算を学習する

scikit-learnという機械学習用のライブラリを使います。

[コード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from sklearn import svm

# XORの演算と結果
xor_data = [
[0, 0, 0],
[0, 1, 1],
[1, 0, 1],
[1, 1, 0]
]

# 学習させるためにデータとラベルに分ける
data = []
label = []

for row in xor_data:
data.append([row[0], row[1]])
label.append(row[2])

# データの学習
clf = svm.SVC()
clf.fit(data, label)

# データを予測
pre = clf.predict(data)
print('予測結果:', pre)

# 正解と合っているか結果を確認
cnt_ok = 0
total = 0

for idx, ans in enumerate(label):
if pre[idx] == ans:
cnt_ok += 1
total += 1

print('正解率:{} / {}'.format(cnt_ok, cnt_ok / total))

実行結果は次のようになります。

[実行結果]

予測結果: [0 1 1 0]
正解率:4 / 1.0

4つのデータにおいて4つ正解しており、正解率は100%であることが分かります。