本問題では「scikit-learn」のうち「サポートベクタマシン、決定木、ランダムフォレスト」について学びます。
本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第35問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
機械学習のアルゴリズムに関する次の記述のうち、誤っているものはどれか。
① ランダムフォレストは、ブートストラップデータを用いて決定木を構築する処理を複数回繰り返し、各木の推定結果の多数決や平均値により分類・回帰を行う手法であり、アンサンブル学習の1つである。
② 決定木などで利用される木と呼ばれるデータ構造は頂点であるノードとそれらを結ぶエッジから構成される。木の最下部にあり子ノードを持たないノードはリーフと呼ばれる。
③ 決定木でデータを分割する時は、データの分割によってどれだけ得をするかについて考える。これを情報利得と呼ぶ。情報利得は親ノードの不純度から子ノードの不純度を差し引いたものとして定義される。
④ サポートベクタマシンは、分類・回帰だけでなく外れ値検出にも使えるアルゴリズムであり、直線や平面などで分離できないデータであっても、高次元の空間に写して線形分離することにより分類を行うことを可能にする。
⑤ サポートベクタマシンは、マージンを最小にすることにより決定境界を求めるが、これは、決定境界がサポートベクタから近くなり多少のデータが変わっても誤った分類を行う可能性をを低くし、汎化能力を持たせようとしているためである。
解説
正解は選択肢⑤です。以下解説します。
選択肢①
選択肢①は正しい肢です。
scikit-learnでランダムフォレストを実行するには、ensembleモジュールのRandomForestClassifierクラスを使います。
選択肢②
選択肢②も正しい肢です。
決定木のデータ構造は、ルートから条件分岐が始まり、エッジで枝分かれして、リーフにたどり着くという、木を逆さにした形です。
なおscikit-learnで決定木を実行するには、treeモジュールのDesionTreeClassifierクラスを使います。
選択肢③
選択肢③も正しい肢です。情報利得の説明です。
選択肢④
選択肢④も正しい肢です。サポートベクタマシンの説明です。
scikit-learnでサポートベクタマシンを実行するには、svmモジュールのSVCクラスを使います。
選択肢⑤
選択肢⑤は誤りです。
サポートベクタマシンの決定境界は、マージンを(「最小」ではなく)最大にすることで求めます。
第1回Python3データ分析模擬試験第35問の解説は以上です。