どこでも話題になっているのは、機械学習です。
では、この「機械学習(ML)」とは何でしょうか?
実際の例を考えてみましょう。初めて行うタスクの結果の確率を想像できるとしたら、その仕事が車の乗り方を学ぶことだとしましょう。つまり、自分自身にどのようにフィードバックしますか?不確実性がありますか?
一方、数年間練習した後、同じタスクを達成した自分を褒めたいと思いませんか?おそらく、考え方が不確実性パラメータまたはより確実なものから移行することになるでしょう。では、どのようにしてその業務に関する専門知識を身につけたのでしょうか?
おそらく、いくつかのパラメーターを微調整することでパフォーマンスが向上するという経験を積んだことでしょう。右?これが機械学習です。
コンピューター プログラムは、最高のパフォーマンスの結果 (P) を与えるために、いくつかのタスク (T) に関する経験 (E) から学習するといわれています。
同様に、機械は複雑な数学の概念に従って学習し、機械のすべてのデータは 0 と 1 の形式になります。その結果、私たちはプログラムのロジックをコーディングしません。代わりに、マシンがデータから独自にロジックを理解できるようにしたいと考えています。
さらに、経験、仕事のレベル、稀有なスキルと給与の関係を知りたい場合は、機械学習アルゴリズムを教える必要があります。
このケーススタディによれば、ラベルを取得するには特徴を調整する必要があります。ただし、アルゴリズムをコーディングするのではなく、データに重点を置く必要があります。
したがって、コンセプトはデータ + アルゴリズム = インサイトです。第二に、アルゴリズムはすでに開発されており、問題を解決するためにどのアルゴリズムを使用するかを知る必要があります。回帰問題とアルゴリズムを選択する最適な方法を見てみましょう。
機械学習の概要
機械学習に 5 年以上の経験を持つドイツの科学者Andreybu氏によると、「機械学習のタスクが回帰問題なのか分類問題なのかを理解できれば、適切なアルゴリズムを選択するのは簡単です。」
列挙すると、それらの主な違いは、回帰の出力変数が数値 (または連続) であるのに対し、分類の出力変数はカテゴリ (または離散) であることです。
機械学習における回帰
まず、回帰アルゴリズムは、入力変数 (x) から数値または連続出力変数 (y) へのマッピング関数 (f) を推定しようとします。ここで、出力変数は実数値になる可能性があり、整数または浮動小数点値にすることができます。したがって、回帰予測の問題は通常、量またはサイズです。
たとえば、住宅に関するデータセットが提供され、その価格を予測するように求められた場合、価格は連続出力となるため、これは回帰タスクとなります。
一般的な回帰アルゴリズムの例には、線形回帰、 サポート ベクトル回帰 (SVR) 、および回帰ツリーが含まれます。
機械学習における分類
対照的に、分類アルゴリズムの場合、y はマッピング関数が予測するカテゴリです。さらに詳しく説明すると、分類モデルは、単一または複数の入力変数に対して、単一または複数の結論の値を予測しようとします。
たとえば、住宅に関するデータセットが提供された場合、分類アルゴリズムは、住宅の価格が「推奨小売価格よりも高く売れるか、低く売れるか」の予測を試みることができます。ここでは、上記の価格より高いか低いという 2 つの個別のカテゴリがあります。
一般的な分類アルゴリズムの例には、ロジスティック回帰、ナイーブ ベイズ、デシジョン ツリー、K 最近傍法などがあります。
適切なアルゴリズムの選択
データを理解する
- 概要統計を見てみましょう
- 「パーセンタイル」パラメータを使用してデータの範囲を識別します
- 平均と中央値は中心的な傾向を表します
- 相関関係は強い関係を示す可能性があります
データを視覚化する
- 箱ひげ図は例外を示すことができます。
- 密度プロットとヒストグラムはデータの広がりを示します
- 散布図は量の関係を説明できます
データをクリーンアップする
- 欠損値に対処します。結果は、場合によっては機密性の高い結果をもたらす可能性があります (特定の変数のデータが欠落していると不正確な予測が生じる可能性があります)
- ツリー モデルは外れ値の存在に対してそれほど敏感ではありませんが、回帰モデルや方程式を使用するその他のモデルは例外に対してより敏感です。
- 基本的に、異常値は不適切なデータ収集の結果である可能性もあれば、正当な極値である可能性もあります。
データを厳選する
さらに、生データをモデルに準拠した洗練されたデータに変換する際には、次のことに注意する必要があります。
- データを解釈しやすくします。
- より複雑なデータをキャプチャします。
- データの冗長性と次元性を削減することに重点を置きます。
- 変数値を正規化します。
入力変数を通じて問題を分類する
- データにラベルを付けました。それは教師あり学習の問題です。
- ラベルのないデータがあり、構造を見つけたい場合、それは教師なし学習問題です。
- 環境と対話して目的関数を最適化したい場合、それは強化学習の問題です。
出力変数を通じて問題を分類する
- モデルの出力は数値です。それは回帰問題です。
- モデルの出力がクラスである場合、それは分類の問題です。
- モデルの出力は入力グループのセットです。それはクラスタリングの問題です。
制約要因
- ストレージ容量はモデルごとに異なるため注意してください。
- 予測は高速である必要がありますか?たとえば、道路標識の分類などのリアルタイム シナリオでは、事故を避けるためにできるだけ早く処理する必要があります。
最後にアルゴリズムを見つけます
データを明確に把握できたので、適切なアルゴリズムを選択するための適切なツールを実装できます。
一方、より適切な決定を行うために、以下の要素のチェックリストをご覧ください。
- モデルがビジネス目標に沿っているかどうかを確認する
- モデルに必要な前処理の量
- モデルの精度を確認する
- モデルの説明可能性
- モデルの速度: モデルの構築にどのくらいの時間がかかり、モデルが予測を行うのにどのくらいの時間がかかりますか
- モデルのスケーラビリティ
さらに、選択する際にはアルゴリズムの複雑さに注意を払う必要があります。
一般に、次のパラメーターを使用してモデルの複雑さを測定できます。
- ターゲットの学習と予測に 2 つまたは 10 を超える特徴が必要な場合
- より複雑な特徴エンジニアリング (多項式項、交互作用、または主成分の使用など) に依存します。
- シナリオの計算オーバーヘッドが大きい場合 (例: 1 つのデシジョン ツリーと 100 ツリーのランダム フォレスト)
さらに、同じアルゴリズムを手動でより複雑にすることもできます。それは純粋に、使用されるパラメータの数と検討中のシナリオに依存します。たとえば、より多くの特徴や多項式項と交互作用項を使用して回帰モデルを設計できます。または、深さを浅くしたデシジョン ツリーを設計することもできます。
一般的な機械学習アルゴリズム
線形回帰
これらはおそらく最も単純なものです。
線形回帰が使用される例は次のとおりです。
- まず、ある場所から別の場所に移動するとき
- 特定の商品の来月の売上を予測する
- 血中アルコール濃度が調整に及ぼす影響
- 毎月のギフトカードの売上を予測し、年間の収益予測を改善します
ロジスティック回帰
どうやら、このアルゴリズムには多くの利点があるようです。優れた解釈機能とより多くの機能の統合、新しいデータを添付する簡単な更新機能などです。
別の言い方をすると、これを次の目的で使用できます。
- 顧客の離脱を予測します。
- 信用スコアリングまたは不正検出の特定のケース。
- マーケティング キャンペーンの効果を測定します。
ディシジョン ツリー
どうやら、単一のツリーが使用されることはめったにありませんが、他の多くのツリーと組み合わせて、ランダム フォレストやグラデーション ツリー ブースティングなどの効率的なアルゴリズムを構築します。ただし、欠点の 1 つは、オンライン学習をサポートしていないため、新しい例が登場したときにツリーを再構築する必要があることです。
木は次のような用途に最適です。
- 投資決定
- 銀行ローン滞納者
- セールスリーダーの資格
ナイーブ・ベイズ
最も重要なことは、CPU とメモリのリソースが制限要因である場合には、Naive Bayes が正しい選択であるということです。ただし、主な欠点は、機能間の相互作用を学習できないことです。
次の用途に使用できます。
- 顔認識
- 電子メールをスパムとしてマークするかどうか。
- 感情分析とテキスト分類。
結論
したがって、一般的に言えば、リアルタイムのシナリオでは、目的に適した機械学習アルゴリズムを使用することは多少困難です。ただし、このチェックリストを使用して、都合の良いときにいくつかのアルゴリズムを候補リストに挙げることができます。
さらに、現実の問題に対する適切なソリューションを選択するには、適切なアルゴリズムとともに専門家のビジネス理解が必要です。したがって、データを適切なアルゴリズムに教え込み、それらをすべて並列または直列で実行し、最後にアルゴリズムのパフォーマンスを評価して最適なアルゴリズムを選択します。
ディープ ラーニングを専門的に学びたい場合は、 ディープ ラーニングのこのコースをチェックしてください。