はじめに
機械学習の勉強として、「基礎から学ぶ 人工知能の教科書」 を読んでいます。
この本の特徴は、章末問題にPython
の簡単なプログラムが載っていてるところです。
ここでは、それをRuby
にて写経しています。
第3章 章末問題
kneighbor.rb
itemdata = [[30, 50, 'A'], [65, 40, 'B'],
[90, 100, 'A'], [90, 60, 'B'],
[70, 60, 'B'], [40, 50, 'A'],
[80, 50, 'B']]
print '分類対象の高さを入力してください:'
h = gets.to_i
print '分類対象の上部表面積を入力してください:'
a = gets.to_i
print itemdata.sort_by{|x, y, _| (x - h) ** 2 + (y - a) ** 2}
k近傍法による分類問題を解くプログラムを作成する問題です。
分類対象の高さを入力してください:50
分類対象の上部表面積を入力してください:50
[[40, 50, "A"], [65, 40, "B"], [30, 50, "A"], [70, 60, "B"], [80, 50, "B"], [90, 60, "B"], [90, 100, "A"]]
例えば、高さ50 上部表面積50
のデータは、A
に分類されます。
まとめ
- 第3章まで読んだ