数字をひと目で
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 59/60。
load_digitsには1,797個の手書き数字が含まれています。各サンプルは64個のピクセルの明るさで構成され、8×8の画像を行ごとに並べたもので、値は0(空白)から16(インクで塗りつぶされた状態)までです。
4の書き方は人それぞれです:
教師が求めているのは、典型的なもの、つまり各ピクセルについて、数字のすべてのサンプルにわたるそのピクセルの平均値をとった平均画像です。
チャレンジ
難しいプログラムは数字 d を読み込みます。as_frame を指定せずに数字データを読み込むと、.data と .target は NumPy 配列になります。
- 数字
dの平均画像を計算します。 - 最も明るいピクセルの行と列を、0から数えて出力します。
- 平均インク量を出力します。これは64個のピクセル平均値の平均で、
np.roundを使って小数点以下2桁に丸めます。 grayの8×8画像として描画し、タイトルをAverageと数字にします。
4の場合、次のようになります。
入力が 4 の場合、出力全体は次のとおりです。
Brightest pixel: row 5, column 4
Average ink: 4.85
Charts drawn: 1
Title: Average 4
Images: 1
Size: 8 rows, 8 columns
Color map: gray
Row 0: [0.0, 0.0, 0.5, 7.1, 11.5, 2.0, 0.2, 0.1]
Row 1: [0.0, 0.1, 3.5, 13.3, 8.5, 2.0, 1.1, 0.3]
Row 2: [0.0, 0.7, 10.5, 11.4, 4.9, 5.8, 3.8, 0.3]
Row 3: [0.0, 4.6, 14.5, 6.4, 7.4, 10.6, 6.1, 0.0]
Row 4: [0.0, 8.6, 14.6, 9.7, 13.0, 14.0, 5.3, 0.0]
Row 5: [0.1, 6.3, 11.3, 12.4, 14.6, 10.4, 1.6, 0.0]
Row 6: [0.1, 1.1, 2.9, 7.8, 13.5, 4.2, 0.0, 0.0]
Row 7: [0.0, 0.0, 0.6, 7.8, 11.8, 2.0, 0.0, 0.0]自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
d = int(input())
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ