Menu
CoddyTech

機械学習を始めよう

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 1/60。

ほとんどのプログラムは、人が書いたルールに従います。機械学習モデルは、例から独自のルールを見つけます。

こちらは150本のアヤメです。それぞれの花を、花びらの大きさに応じた点で示しています。

点で示した150本のアヤメ。横軸は花びらの長さ、縦軸は花びらの幅で、3つの明確なクラスターに分かれ、各種がそれぞれ異なる色と形で示されています

3つのグループが見えますか?モデルもそれらを学習し、見たことのない花の名前を当てられるようになります。

challenge icon

チャレンジ

簡単

このプログラムは準備完了です。Runを押すと、モデルは112個の花を学習し、その後、新しい38個の花の名前を判定します。

Plotsタブを開いて、モデルの予測を確認しましょう。1つだけ間違っているものを見つけられますか?それから提出しましょう。

自分で試してみよう

# Runを押して、モデルが学習する様子を見てみましょう
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt

# 150輪のアヤメ:それぞれの測定値と品種
iris = load_iris()
X_learn, X_new, y_learn, y_new = train_test_split(iris.data, iris.target, random_state=0)

# モデルは正解とともに112輪の花を学習し...
model = KNeighborsClassifier()
model.fit(X_learn, y_learn)

# ...その後、見たことのない38輪の花の品種を予測します
guesses = model.predict(X_new)
right = (guesses == y_new).sum()
print(f"Studied {len(X_learn)} flowers")
print(f"Named {right} of {len(X_new)} new flowers correctly")

# 新しい花はそれぞれ、モデルの予測に応じた色の点で表されます。赤いXは間違いを示します
fig, ax = plt.subplots()
for i, name in enumerate(iris.target_names):
    picked = guesses == i
    ax.scatter(X_new[picked, 2], X_new[picked, 3], label=f"guessed {name}")
wrong = guesses != y_new
ax.scatter(X_new[wrong, 2], X_new[wrong, 3], marker="x", color="red", s=120, label="mistake")
ax.set_title("The model's guesses for 38 new flowers")
ax.set_xlabel("petal length (cm)")
ax.set_ylabel("petal width (cm)")
ax.legend()
plt.show()
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

データとプロットのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ