Yuma-Tsukakoshi / plus_zero_check_test

0 stars 0 forks source link

3.4 典型的なアルゴリズムの選択方法について学ぶ #15

Closed Yuma-Tsukakoshi closed 1 year ago

Yuma-Tsukakoshi commented 1 year ago

【やること】 下記のフローチャートが存在することを把握してください。 下記の【解説】を読んでフローチャートの使い方を理解してください。 ※ 各アルゴリズムの詳細・なぜこのようなフローチャートとなるかについてはアドバンス な内容となるため、興味があれば調べてみてください 【参照するページ】 sklearn公式の問題ごとにどのアルゴリズムを使えばいいかフローチャート 【解説】 フローチャートの読み方: Startから始まり、実行したいタスク・データによってYES/NOを選択して進んで行きます。 アルゴリズムは大きく分けて4つのカテゴリ(Classification, Clustering, Regression, Dimensionality Reduction)に分かれます。 下記に例を示すので、フローチャートを参照しながら追ってみてください。ひとまず、下の2例が理解できれば大丈夫です。

例1: データ数が数千程度の分類問題(教師データあり)を分類する まず, 次のルートで進んでいきます

50 samples → predicting a category → labeled data → <100K samples → Linear SVC

⇒緑の四角「Linear SVC」まで来たら一度そのアルゴリズムを使って性能を確かめます。 ⇒性能が不十分(Not Working)な場合、次に進みます。今回はText Dataではないため、「KNeighbors Classifier」を試します。 ⇒それでも不十分であれば「SVC」「Ensemble Classifiers」などの他のアルゴリズムを試します。

例2: 例1においてデータ数が数十万件以上である場合 途中までは例1と同じように辿っていきます。 ⇒途中の「 <100K samples」でNoとなるため、はじめに「SGD Classifier」を試します。 ⇒SGD Classifierが不十分な場合は「Kernel Approximation」に含まれるアルゴリズムを試します。

※ データが多い場合、他のアルゴリズムではメモリ使用量などに問題が生じることがあるため、SGD等の省メモリなアルゴリズムを選択する必要があります。これはClusteringにおける「MiniBatch Kmeans」にも当てはまります。

automlライブラリについての補足  PyCaret 等のautoml系ライブラリを用いると、上記のようなアルゴリズム(モデル)の選択を効率的に進める事ができます。通常利用するようなアルゴリズムが一通り含まれており、前処理等も一括で処理できるため積極的に利用することをオススメします。内部がブラックボックスとなると思わぬ罠に引っかかる事もあるので、各アルゴリズムの特性は理解した上でこのようなライブラリを利用するようにしましょう。(課題ではありませんが補足情報として記載しています)