適切なMLアプローチの選択についてコンセンサスはありますか?


8

私は現在データサイエンスを勉強しており、目まぐるしく変化するさまざまな基本的な回帰/分類手法(線形、ロジスティック、ツリー、スプライン、ANN、SVM、MARSなど...)とさまざまな方法を教えられています追加のツール(ブートストラップ、ブースティング、バギング、アンサンブル、リッジ/ラッソ、CVなど)。技術にはコンテキストが与えられる場合があります(例:小さい/大きいデータセットに適している、少数/多数の予測子に適しているなど)が、ほとんどの場合、回帰または分類の問題にはオプションの目まいがする配列が存在するから選択します。

今すぐデータサイエンスの仕事を始めて、モデリングの問題が発生した場合、基本的な構成で知っているすべての手法を試して、交差検証を使用して評価し、最良のものを選択することほどよいことはないと思います。しかし、これにはそれ以上のものがあるに違いありません。

私は、経験豊富なデータサイエンティストがテクニックのカタログをよく知っていて、精神的なフローチャートに従って、すべてのテクニックを無意識に試すのではなく、どのテクニックを試すかを決定すると思います。私はこのフローチャートがa)関数の関数であると想像します。b)変数タイプ。c)考えられる関係(線形/非線形)に関するドメイン知識。d)データセットのサイズ。e)計算時間などに関する制約。

手法を選択するために、従うべき従来のフローチャートに同意したものはありますか?それとも、「多くのことを試して、クロスバリデーションなど、目的のメジャーで最も効果的なものを確認する」ということになるのでしょうか。

回答:


4

私のデータサイエンスの研究は、応用統計学の修士号として始まりました。コースの1つは機械学習であり、あなたが説明している内容と同様のアプローチがありました。だから、私はあなたの現在の見方に少し共感できます。しかし、あなたが人生で学んだかもしれない他のことと同じように、あなたが学問的な環境で物事を行う方法とビジネス環境で(すなわちクライアントのために)物事を行う方法は完全に異なります。これは私の最初の研究以来私が学んだことです:

1-Pythonを学ぶ

もちろん、他にもツールはありますが、それらは問題ありません(私はかつてRのコードを最も優れたもので記述していました)が、Pythonは未来の時代です。さらに、Pythonと同様にスケールするツールは非常に少ないため、本当にクールなものに取り組みたい場合は重要です。

2-すべては実装にかかっています

何だと思う?現在学習しているすべてのこと(混同行列、因子削減など)は、クライアントにとっては意味がありません。彼らはあなたを見つめて、「製品は何ですか?何かを私の電話にいつ配備するのですか?私のWebアプリケーションをクリックする場所は?」と言います。あなたの仕事の大部分はあなたのすべての仕事を製品に変えることであり、あなたは自分が準ソフトウェア開発者の帽子をかぶっているのに気づくでしょう。これは、Pythonを学ぶもう1つの理由でもあります。

3-データパイプラインに時間がかかる

LOTあなたの仕事のは、データ操作になると、ちょうどあなたが必要とするデータパイプラインがあることを確認します。もちろん、データベースはありますが、どのように更新しますか?どのような前処理が必要ですか?結果はどこに保存されますか?あなたはこのことを理解するのにたくさんの時間を費やします。データセットがすっきりとした方法で与えられた学校時代を逃します:)

4-ニューラルネットワークがお尻を蹴る

このリンゴを一口食べたら、戻るのは難しいです:)。ケラスを学び、乗車を楽しんでください。しばらくすると、決定木が何であるかを思い出す必要があります:)

5-モデル検索がはるかに簡単になりました

100%明確にするために、あなたが今行っている「モデル検索」アプローチは非常に貴重な経験です。あなたは間違いなくそれらのクラスで一生懸命働くべきです。ただし、時間があれば、(1)Data Robotまたは(2)Watson Analyticsのどちらかを見てください。これらのパッケージはどちらも、基本的に同じことを行います。彼らはあなたのデータセットを受け取り、それに最適なモデルを見つけます。上記で説明したすべての項目は、ほんの数秒で完了します。それらがどれほど高速であるかはほぼ恐ろしく、作業の削減に非常に効果的です。ただし、これらのパッケージは監視データのみをサポートすることに注意してください。監視されていないデータに対しては、昔ながらの方法でそれを行う必要があります(または、いくつかにラベルを付けてニューラルネットワークを使用します)。

6-私はまだ他のモデルの背後にある理論を使用しています

ニューラルネットワークをたくさん使用していても、他のモデルは役に立ちます。基本的な問題には、線形回帰または決定木を使用します。また、archivxに関する研究論文などを読むことにした場合にも役立ちます。ですから、私は自分の研究と理解のためにそれらを使用しますが、それはそれについてです。

楽しんで!


1
ありがとう!Data Robotはかなりすばらしいように見えますが、価格はオンラインで利用できません...非常に高価ですか?自動化されたデータサイエンスのためのオープンソースの代替手段はありますか?
ブレンダンヒル

@BrendanHillいいえ、私が知っているオープンソースの代替はありません。市場はそのために十分に「成熟」していません。ただし、繰り返しになりますが、これらのツールを松葉杖として使用しないように注意してください。理論を理解する必要があります。多くの場合、Data Robotを使用してフィールドを絞り込みますが、そのツールの外でモデルを構築する方法を知っている必要があります。幸運を祈ります!
I_Play_With_Data

4

さて、このようにしましょう。学習方法は多数ありますが、それぞれが特定の状況に役立ちます。問題には複数の選択肢がある可能性があります。各学習アプローチには特別なアプリケーションドメインがあり、そのため人々は通常、決定木を使用する場所とニューラルネットワークを選択する場所を知っています。たとえば、すべての入力が実数値の場合、決定木を使用しようとするのは賢い選択。MLの実践者が通常検討する主なことを説明しようとします。

利用可能な機能の数

非常に多くの機能がある場合、簡単に視覚化できないため、機能の数は重要です。これにより、データが線形分離可能かどうかを認識できなくなる可能性があります。したがって、多くの機能は、データセットが線形的に分離可能でないことを意味しません。したがって、問題のモデル化にニューラルネットを使用するとします。非常に多くの層とニューロンを持つ複雑なネットワークから始めるべきではありません。データが線形分離可能かどうかを判断するには、分類タスクのロジスティック回帰に相当する単一のニューロンから始める必要があります。パフォーマンスが悪いことがわかった場合は、ニューロンとレイヤーを追加できます。どうやって?見てみましょうニューラルネットワークにおけるニューロンおよび層数を設定する方法を

フィーチャースペース

MLアプローチの選択については、特徴空間に関する各アルゴリズムの制限を考慮することは簡単です。例えば、決定木は、それらのいくつかが数値特徴である多くの特徴を持つ問題にはあまり適していません。彼らは本当に大きくなるかもしれません。SVMsカーネルサイズを指定する必要があるため、非常に多くの機能を持つ非線形問題にはあまり適していません。機能空間内のさまざまな領域では、単一のカーネルサイズは価値がない場合があります。一般化すると、入力空間が非常に大きい問題は通常、ニューラルネットワークを使用して処理されます。問題に非常に多くの特徴があるが、それらが例えばバイナリ特徴または少数の選択肢を持つカテゴリー特徴である場合、問題はより小さい特徴空間、入力空間、および他のMLアプローチを検討できます。

データセットのサイズ

問題、特徴タイプ、および特徴範囲に応じて、入力スペースは非常に小さい場合と非常に大きい場合があります。そのため、入力スペースによって、取り得るデータ数が異なる場合があります。前述のように、入力空間が大きい場合、ニューラルネットはマッピングに対して非常に強力です。

分布とベイズ誤差

分類などのさまざまなタスクでは、使用可能なデータセットをよりよく知るために統計分析を行う必要があります。同じであるがそれらのラベルが異なる入力パターンがあるかどうかを調査する必要があります。もしそうなら、なぜですか?それはエキスパートのエラー用かどうかです。現在のフィーチャスペースは問題を理解するのに有効ではありません。これらの質問に対処した後、ベイズエラーを使用して、データにどのような精度があるかを調査することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.