タグ付けされた質問 「machine-learning」

機械学習アルゴリズムは、トレーニングデータのモデルを構築します。「機械学習」という用語は漠然と定義されています。これには、統計学習、強化学習、教師なし学習などとも呼ばれるものが含まれます。常に、より具体的なタグを追加します。


7
ユークリッド距離は通常、スパースデータには適していませんか?
多次元データとスパースデータがある場合、古典的な距離(ユークリッド距離など)が弱判別性になることをどこかで見ました。どうして?ユークリッド距離がうまく機能しない2つのスパースデータベクトルの例はありますか?この場合、どの類似性を使用する必要がありますか?

8
機械学習者で見つけるのは難しいスキルですか?
データマイニングと機械学習は非常に人気が高まったため、ほとんどすべてのCS学生が分類子、クラスタリング、統計NLPなどについて知っているようです。 私の質問は、データマイナーが他のスキルとは異なるスキルを身に付けるにはどうすればよいでしょうか?彼をあまりにも見つけにくい誰かに似た人にすること。

2
閉形式と勾配降下の回帰パラメータの解決
Andrew Ngの機械学習コースでは、線形回帰とロジスティック回帰を紹介し、勾配降下法とニュートン法を使用してモデルパラメーターを近似する方法を示しています。 勾配降下は、機械学習の一部のアプリケーション(逆プロパゲーションなど)で役立つことがありますが、より一般的なケースでは、閉形式のパラメーターを解かない理由があります。コスト関数と微積分による解? 一般に、閉じた形式のソリューションに対して勾配降下法などの反復アルゴリズムを使用する場合、使用できる場合、その利点は何ですか?

1
相互検証、学習曲線、最終評価のためにデータセットを分割する方法は?
データセットを分割するための適切な戦略は何ですか? 私は、次のアプローチにフィードバックを求める(ないような個々のパラメータのtest_sizeかn_iter、私が使用している場合X、y、X_train、y_train、X_test、およびy_test適切かつシーケンスは理にかなっている場合): (scikit-learnドキュメントからこの例を拡張) 1.データセットをロードする from sklearn.datasets import load_digits digits = load_digits() X, y = digits.data, digits.target 2.トレーニングとテストセットに分割(例:80/20) from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) 3.推定量を選択 from sklearn.svm import SVC estimator = SVC(kernel='linear') 4.相互検証イテレーターを選択します from sklearn.cross_validation import ShuffleSplit cv = ShuffleSplit(X_train.shape[0], n_iter=10, test_size=0.2, random_state=0) 5.ハイパーパラメーターの調整 …

9
時系列の異常を検出するには、どのアルゴリズムを使用する必要がありますか?
バックグラウンド 私はネットワークオペレーションセンターで働いており、コンピューターシステムとそのパフォーマンスを監視しています。監視する重要な指標の1つは、現在サーバーに接続している訪問者数と顧客数です。それを可視化するために、Opsチームは時系列データなどのメトリックを収集し、グラフを描画します。Graphiteはそれを可能にします。突然のドロップ(大部分)やその他の変更が発生した場合にチームに通知するアラートシステムを構築するために使用する非常に豊富なAPIを備えています。ここでは、平均値に基づいて静的なしきい値を設定しましたが、日中と週中の負荷が異なるため(季節性要因)、あまりうまく機能しません(多くの誤検知があります)。 次のようになります。 実際のデータ(1つのメトリックの例、15分の時間範囲。最初の数字はユーザー数、2番目はタイムスタンプ): [{"target": "metric_name", "datapoints": [[175562.0, 1431803460], [176125.0, 1431803520], [176125.0, 1431803580], [175710.0, 1431803640], [175710.0, 1431803700], [175733.0, 1431803760], [175733.0, 1431803820], [175839.0, 1431803880], [175839.0, 1431803940], [175245.0, 1431804000], [175217.0, 1431804060], [175629.0, 1431804120], [175104.0, 1431804180], [175104.0, 1431804240], [175505.0, 1431804300]]}] 私が達成しようとしていること 最近のデータポイントを受信し、それらを過去の平均値と比較し、突然の変更またはドロップがあった場合にアラートを送信するPythonスクリプトを作成しました。季節性のため、「静的」しきい値はうまく機能せず、スクリプトは誤検知アラートを生成します。アラートアルゴリズムをより正確に改善し、アラートのしきい値を絶えず調整することなく機能するようにしたいと考えています。 必要なアドバイスと発見したこと グーグルで私は、異常検出のための機械学習アルゴリズム(監視なしアルゴリズム)を探していると考えました。さらに調査を行った結果、それらは非常に多く、どれが私の場合に当てはまるかを理解することは非常に困難です。数学の知識が限られているため、洗練された学術論文を読むことができず、この分野の初心者にとって簡単なものを探しています。 私はPythonが好きで、Rに少し精通しているので、これらの言語の例を見て喜んでいます。問題を解決するのに役立つ良い本や記事をお勧めします。あなたの時間をありがとう、そのような長い説明のために私を許します 便利なリンク 同様の質問: 時系列と異常検出 Pythonを使用した時系列異常検出 時系列異常 時系列異常検出のアルゴリズム 時系列ベースの異常検出アルゴリズムへのウェーブレットの適用 どのアルゴリズムを使用すればよいですか? …


6
2016年に本当に必要な予測モデリングの変数選択?
この質問はCVで数年前に尋ねられました。1)より優れたコンピューティングテクノロジー(例:並列コンピューティング、HPCなど)と2)新しいテクニック、たとえば[3]を考慮すると、再投稿する価値があるようです。 まず、いくつかのコンテキスト。目標が仮説のテストではなく、効果の推定ではなく、見えないテストセットの予測であると仮定しましょう。したがって、解釈可能な利益に重みは与えられません。第二に、主題の検討における予測子の関連性を排除できないとしましょう。それらはすべて個別に、または他の予測因子と組み合わせてもっともらしいようです。第三に、数百(数百)の予測子に直面しています。第4に、AWSに無制限の予算でアクセスできるため、計算能力が制約にならないとします。 変数選択の通常の理由は、1)効率です。より小さなモデルをより速く適合させ、より少ない予測変数をより安価に収集する、2)解釈; 「重要な」変数を知ることで、基礎となるプロセスの洞察が得られます[1]。 現在、多くの変数選択方法が効果的でなく、しばしば完全に危険であることが広く知られています(例えば、前方段階的回帰)[2]。 次に、選択したモデルが適切であれば、予測子のリストをまったく削減する必要はありません。モデルはあなたのためにそれを行う必要があります。良い例は、すべての無関係な変数にゼロ係数を割り当てるなげなわです。 一部の人々は「象」モデルの使用を支持していることを知っています。考えられるすべての予測変数を適合に投げ込み、それで実行します[2]。 目標が予測精度である場合、変数選択を行う根本的な理由はありますか? [1] Reunanen、J.(2003)。変数選択方法を比較する際の過剰適合。Journal of Machine Learning Research、3、1371-1382。 [2] Harrell、F.(2015)。回帰モデリング戦略:線形モデル、ロジスティックおよび順序回帰、および生存分析への応用。スプリンガー。 [3] Taylor、J。、およびTibshirani、RJ(2015)。統計的学習と選択的推論。国立科学アカデミー論文集、112(25)、7629-7634。 [4] Zhou、J.、Foster、D.、Stine、R.、&Ungar、L.(2005、August)。アルファ投資を使用したスト​​リーミング機能の選択。データマイニングにおける知識の発見に関する第11回ACM SIGKDD国際会議の議事録(pp。384-393)。ACM。

3
時系列分析にリカレントニューラルネットワークを使用する適切な方法
リカレントニューラルネットワークは、「通常の」ニューラルネットワークとは、「メモリ」層を持っているという事実によって異なります。この層のため、リカレントNNは時系列モデリングに役立つと思われます。ただし、それらの使用方法を正しく理解しているかどうかはわかりません。 :のは、(左から右に)私は、次の時系列を持っているとしましょう[0, 1, 2, 3, 4, 5, 6, 7]、私の目標は、予測することでiポイントを使用して番目のポイントをi-1してi-2(それぞれの入力などi>2)。「通常の」非定期的なANNでは、次のようにデータを処理します。 target| input 2| 1 0 3| 2 1 4| 3 2 5| 4 3 6| 5 4 7| 6 5 次に、2つの入力ノードと1つの出力ノードを持つネットを作成し、上記のデータでトレーニングします。 リカレントネットワークの場合、このプロセスを(もしあれば)変更する必要がありますか?

4
GaussianカーネルがPCAにとって魔法のようになっているのはなぜですか?
私は、カーネルPCA(約読んでいた1、2、3)ガウスと多項式カーネルを持ちます。 ガウスカーネルは、どのような種類の非線形データも例外的にどのように分離するのですか?直感的な分析と、可能であれば数学的に複雑な分析を提供してください。 他のカーネルにはないガウスカーネル(理想的なσσ\sigma)のプロパティとは何ですか?ニューラルネットワーク、SVM、およびRBFネットワークが思い浮かびます。 たとえば、Cauchy PDFを基準にして、同じ結果を期待してみませんか?


3
ニューラルネットワークと深い信念ネットワークの違いは何ですか?
人々が「深い信念」のネットワークに言及しているとき、これは基本的にニューラルネットワークであるが非常に大きいという印象を受けています。これは正しいですか、または深い信念ネットワークは、アルゴリズム自体が異なることを暗示していますか(つまり、フィードフォワードニューラルネットはないが、おそらくフィードバックループのあるもの)。

2
なぜ3つのパーティションしかないのですか?(トレーニング、検証、テスト)
モデルを大規模なデータセットに適合させようとする場合、一般的なアドバイスは、データを3つの部分(トレーニング、検証、テストデータセット)に分割することです。 これは、通常、モデルには3つの「レベル」のパラメーターがあるためです。最初の「パラメーター」はモデルクラス(SVM、ニューラルネットワーク、ランダムフォレストなど)、2番目のパラメーターセットは「正規化」パラメーターまたは「ハイパーパラメーター」(たとえば、投げ縄ペナルティ係数、カーネルの選択、ニューラルネットワーク構造)および3番目のセットは、通常「パラメーター」と見なされるものです(共変量の係数など)。 モデルクラスとハイパーパラメーターの選択が与えられると、トレーニングセットのエラーを最小化するパラメーターを選択してパラメーターを選択します。モデルクラスが与えられると、検証セットのエラーを最小化することでハイパーパラメーターを調整します。テストセットのパフォーマンスによってモデルクラスを選択します。 しかし、なぜこれ以上パーティションがないのですか?多くの場合、ハイパーパラメータを2つのグループに分割し、「検証1」を使用して最初に適合させ、「検証2」を使用して2番目に適合させることができます。または、トレーニングデータ/検証データのサイズを調整するハイパーパラメーターとして扱うこともできます。 これは一部のアプリケーションですでに一般的な慣行ですか?データの最適な分割に関する理論的な作業はありますか?

9
正規化と機能のスケーリングはどのようにそしてなぜ機能しますか?
多くの機械学習アルゴリズムは、平均相殺と共分散等化でより良く機能することがわかります。たとえば、ニューラルネットワークはより速く収束する傾向があり、K-Meansは通常、前処理された機能を使用してより良いクラスタリングを提供します。これらの前処理ステップの背後にある直感がパフォーマンスの向上につながるとは思いません。誰かがこれを私に説明できますか?

8
テストデータがトレーニングデータに漏れないようにする方法を教えてください。
予測モデルを構築している人がいると仮定しますが、その人は必ずしも適切な統計的または機械学習の原則に精通しているとは限りません。たぶん私たちは学習中のその人を助けているかもしれませんし、あるいはその人は使用するのに最低限の知識しか必要としない何らかのソフトウェアパッケージを使っているかもしれません。 この人は、実際のテストがサンプル外の精度(またはその他のメトリック)に由来することを非常によく認識するかもしれませんデータの。しかし、私の懸念は、心配する微妙な点があることです。単純な場合、彼らはモデルを構築し、トレーニングデータで評価し、保留されているテストデータで評価します。残念ながら、その時点で戻ってモデル化パラメーターを微調整し、同じ「テスト」データで結果を確認するのは非常に簡単な場合があります。この時点で、データはもはやサンプル外のデータではなく、オーバーフィッティングが問題になる可能性があります。 この問題を解決する1つの潜在的な方法は、多くのサンプル外のデータセットを作成して、各テストデータセットを使用後に破棄し、まったく再利用しないようにすることです。ただし、これには多くのデータ管理が必要です。特に、分析の前に分割を行う必要があります(したがって、事前に分割数を知る必要があります)。 おそらく、従来のアプローチはk倍交差検証です。しかし、ある意味では、特にまだ学習している人にとって有用だと思う「トレーニング」と「テスト」のデータセットの区別を失います。また、これはすべてのタイプの予測モデルに意味があるとは確信していません。 経験の浅いユーザーにはまだある程度明確でありながら、オーバーフィットと漏れのテストの問題を克服するために見落としている方法はありますか?

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