本文へスキップ
ひもとくAI

条件分岐と繰り返し

レッスン 2/5

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文と同じような繰り返し処理が行われています。仕組みを知っておくことで、後の単元の理解が深まります。

演習

演習を読み込んでいます…