機械学習を始めよう
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 1/60。
ほとんどのプログラムは、人が書いたルールに従います。機械学習モデルは、例から独自のルールを見つけます。
こちらは150本のアヤメです。それぞれの花を、花びらの大きさに応じた点で示しています。
3つのグループが見えますか?モデルもそれらを学習し、見たことのない花の名前を当てられるようになります。
チャレンジ
簡単このプログラムは準備完了です。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()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ