Menu
CoddyTech

特徴量とラベル

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

モデルは入力から答えを学習するので、2つのものを渡します。特徴量のXと、各サンプルに1つずつ対応するラベルのyです。

6行のアヤメのデータを2つに分割したもの。Xは各行に4つの測定値が並ぶ薄い青色のグリッドで、隣にあるyは各行に1つずつラベル(0、0、1、1、2、2)が並ぶ濃い青色のグリッド

as_frame=Trueで読み込まれたデータセットには、両方が用意されています:

iris = load_iris(as_frame=True)
X = iris.data
y = iris.target
print(X.shape, y.shape)

これは次のように出力されます:

(150, 4) (150,)

Xの行iは1つの花で、y[i]はその種を表します。ラベルはXには含めません。答えを読めるモデルでは何も学習できないからです。

次に、y.value_counts()でクラスを数えます。irisは各クラスが50個ずつある、バランスの取れたデータセットです。

challenge icon

チャレンジ

中級

scikit-learn の手書き数字は 8 × 8 の画像で、それぞれが 64 個のピクセル値(特徴量)として保存され、画像に表示されている数字のラベルが付けられています。

load_digits の手書き数字 0〜9。5 個ずつ 2 行に並び、それぞれ白地に濃いインクで描かれたブロック状の 8 × 8 の画像

チームメイトのデータ分割では X: (1797, 65) と表示されます。つまり、X にはまだ正解ラベルが含まれています。

  1. X に 64 個のピクセル特徴量だけが含まれるように修正してください。
  2. 準備済みの行の下に、プログラムが読み取る数字 d を示すサンプル数を表示してください。

入力が 3 の場合:

X: (1797, 64)
y: (1797,)
Samples of digit 3: 183

自分で試してみよう

from sklearn.datasets import load_digits

digits = load_digits(as_frame=True)
d = int(input())

# 特徴量とラベル
X = digits.frame
y = digits.target

# 以下の行は変更しないでください
print(f"X: {X.shape}")
print(f"y: {y.shape}")

# 以下にコードを書いてください
quiz icon腕試し

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

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

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