数字を見てみよう
CoddyのMachine Learningジャーニー「教師なし学習」セクションの一部。レッスン 43/51。
最後のプロジェクトは、手書きのスキャン画像1,797枚、そして先生はいません。5つのレッスンを通して、ラベルを1つも読むことなく、このようなグループを見つけていきます。
すべてのプロジェクトは、観察することから始まります。ピクセルのばらつき、つまり多くのスキャンにわたる標準偏差は、書き手の間で意見が分かれる場所を示します。ここでは、すべての7について見てみましょう。
spread = X[y == 7].std(axis=0)
print((spread == 0).sum())これは15を出力します。7つごとに15ピクセルが空白になります。変化しないピクセルはモデルに何も伝えません。
チャレンジ
中級探索を始めましょう。スターターコードはスキャン画像をXに、数字をyに読み込み、グラフを準備します。
- すべてのスキャン画像における各ピクセルのばらつきを求めます。最もばらつきの大きいピクセルの行、列、ばらつき(小数点以下2桁)を出力し、すべてのスキャン画像で空白のままのピクセル数も出力します。
ax上に8×8の画像として描画し、cmap="Blues"を使って、カラーバーを付けます。表示しましょう。
1だけの場合:
Busiest pixel: row 6, column 5 (spread 6.53)
Blank in every scan: 12 pixelsあなたのグラフは1,797枚すべてのスキャン画像を対象にしています。Coddyがあなたの画像を説明します。書き手の違いが最も大きいのはどこでしょう?
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
# 手書きのスキャン画像1,797枚:各画像は64ピクセル(8×8、インクの濃さは0から16)で、書かれた数字の情報も含む
digits = load_digits()
X = digits.data
y = digits.target
fig, ax = plt.subplots()
ax.set_title("Where Writers Disagree")
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
教師なし学習のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ