本問題では「scikit-learn」のうち、教師なし学習の典型的タスクの1つであるクラスタリングと、そのアルゴリズムである階層的クラスタリング(凝集型・分割型)や、非階層的クラスタリングのk-meansについてについて学びます。
本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第40問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
クラスタリングに関する次の記述のうち、誤っているものはどれか。
① クラスタリングは、ある基準を設定してデータ間の類似性を計算し、データをクラスタ(グループ)にまとめるタスクであり、教師なし学習の典型的なタスクである。
② 凝集型の階層的クラスタリングは、まず似ているデータをまとめて小さなクラスタを作り、次にそのクラスタと似ているデータをまとめ、最終的にデータが1つのクラスタにまとめられるまで処理を繰り返すクラスタリング手法である。
③ 分割型の階層的クラスタリングは、最初にすべてのデータが1つのクラスタに所属していると考え、順次クラスタを分割していくアプローチであり、一般的に凝集型に比べて計算量が少なく精度が高いためよく用いられる。
④ k-meansは最初にランダムにクラスタ中心を割り当て、クラスタ中心を各データとの距離を計算しながら修正し、最終的なクラスタ中心が収束するまで再計算を行いクラスタリングする手法である。
⑤ k-meansは、scikit-learnのclusterモジュールのKMeansクラスを用いることによって実行することができる。
解説
正解は選択肢③です。以下解説します。
選択肢①
選択肢①は正しい肢です。
教科書の範囲で機械学習の体系を右のように整理しました。
クラスタリングは教師なし学習の典型的タスクの1つです。クラスタリングのアルゴリズムとして、階層的クラスタリングや、k-means やなどがあります。
選択肢②
選択肢②は正しい肢です。
階層的クラスタリングのうち、似ているデータをまとめていく、という凝集型に関する説明です。
なお凝集型の階層的クラスタリングを実行するには、clusterモジュールのAgglomerativeClusteringクラスを用います。
選択肢③
選択肢③は誤りです。
先ほどとおなじ階層的クラスタリングのうち、分割型に関する説明です。
こちらは似ていないデータ同志を分割していく手法であり計算量が多いため、凝集型より利用頻度が多いとは言えません。
選択肢④
選択肢④は正しい肢です。k-meansに関する説明です。
選択肢⑤
選択肢⑤も正しい肢です。
k-meansの実行にはclusterモジュールのKMeansクラスを用います。
第1回Python3データ分析模擬試験第40問の解説は以上です。