データ分析・上級問題チェック
問題 36 /40
scikit-learnで、次のような0〜9の手書き数字を識別する場合、正しい説明はどれか。


選択 1
数値を予測するので、分類ではなく回帰である。
選択 2
画像はデータ量が多いため、ディープラーニングでしか識別できない。
選択 3
決定木で画像の識別はできない。
選択 4
正解データがない教師なし学習でもクラスタリングできる。
解説
選択肢4が正解です。
【選択肢1】
数値を予測するので回帰である。
誤った説明です。
「0、1、2、3、4、5、6、7、8、9」という切れ目のあるクラスに分けるため、分類問題です。
【選択肢2】
画像はデータ量が多いため、ディープラーニングでしか識別できない。
誤った説明です。
問題文のデータはscikit-learnのdigitsデータで、0〜9の手書き数字が1797画像あります。1画像につき縦8ピクセル×横8ピクセルで合計64の説明変数がありますが、ディープラーニングだけでなくサポートベクタマシンなどでも分類できます。
【選択肢3】
決定木で画像の予測はできない。
誤った説明です。
画像もピクセルごとの数値データであるため、決定木やランダムフォレストで分類できます。
以下は、digitsデータをランダムフォレストで分類した結果です。
-------------------------------
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn import metrics
digits = load_digits()
Xtrain, Xtest, ytrain, ytest = train_test_split(digits.data, digits.target, random_state=0)
model = RandomForestClassifier(n_estimators=100)
model.fit(Xtrain, ytrain)
ypred = model.predict(Xtest)
-------------------------------
print(metrics.classification_report(ypred, ytest))
▶︎
左から「適合率、再現率、F値、データ数」を表しており、どの数字も100%に近い精度が出ています。
【選択肢4】
正解データがない教師なし学習でもクラスタリングできる。
正しい説明です。
教師なし学習は正解となる目的変数がないため、「この画像が9」というように数字を特定することはできません。ただ、k-meansのような教師なし学習でも、特徴をとらえて0〜9にクラスタリングすることは可能です。
