if文でルールベースAIを思い出す
導入の単元で、ルールベースAIの例として次のようなコードを見ました。
def judge(temperature):
if temperature >= 30:
return "暑い"
else:
return "普通"
これがif文(条件分岐)です。「もし条件が成り立つなら、こちらの処理を行う。そうでなければ、別の処理を行う」という制御構造でした。条件を増やしたいときはelif(else ifの意味)を使います。
def judge(temperature):
if temperature >= 30:
return "暑い"
elif temperature >= 15:
return "普通"
else:
return "寒い"
条件分岐は、「入力によって処理を変える」という、プログラムの基本的な仕組みです。ルールベースAIは、このif文の組み合わせだけで作られている、と言うこともできます。逆に言えば、「〇〇なら△△」というルールを人間が全部書き出せないほど複雑な問題こそ、機械学習の出番になります。
for文と、学習の「繰り返し」のつながり
for文は、同じ処理を繰り返し行うための仕組みです。
scores = [80, 65, 90, 72]
for score in scores:
print(score)
これは、scoresというリストの中身を1つずつ取り出して、print(score)という処理を繰り返します。
以前のレッスンで、機械学習の「学習」は「予測→ズレの確認→調整、を大量のデータで何度も繰り返す」仕組みだと説明しました。この「繰り返す」という部分は、まさにfor文によって実現されています。
なお、繰り返しにはもう1つ、「条件を満たしている間ずっと繰り返す」while文もあります。
count = 0
while count < 3: # countが3より小さい間、繰り返す
count = count + 1
# ここに来たとき、countは3
このコースでは主にfor文を使います。
total = 0
for score in scores:
total = total + score
average = total / len(scores) # len()はリストの要素数を返す
このように、リストの中身を1つずつ処理しながら合計を計算する、という処理は、この後NumPyやpandasで「もっと簡単に」書けるようになりますが、内部では今回学んだfor文と同じような繰り返し処理が行われています。仕組みを知っておくことで、後の単元の理解が深まります。