データサイエンス

データサイエンスの専門家、機械学習の専門家、およびこの分野に関する知識が豊富な方へ

2
ニューラルネットワークの最適化に遺伝的アルゴリズムが使用されないのはなぜですか?
私の理解では、遺伝的アルゴリズムは多目的最適化のための強力なツールです。 さらに、ニューラルネットワーク(特に深いネットワーク)のトレーニングは難しく、多くの問題があります(非凸コスト関数-極小、勾配の消失および爆発など)。 また、GAを使用してNNを概念的にトレーニングすることも可能です。私は、なぜ彼らが実際に使われないのだろうと思っていましたか?パフォーマンスの問題ですか?


2
常にADAM最適化手法を使用しないのはなぜですか?
そうですアダプティブモーメントの推定(アダム)(より速く、より確実に世界最小の到達)オプティマイザは、ほとんど常に良い作品ニューラルネットを訓練してコスト関数を最小化するとき。 いつもAdamを使わないのはなぜですか?なぜRMSPropやモメンタムオプティマイザーを使用する必要があるのですか

1
ランダムフォレストを使用してサンプリングするフィーチャの数
Wikipediaのページ引用符「統計的学習の要素は、」言います: 通常、特徴を持つ分類問題の 場合、各分割で特徴が使用されます。ppp⌊p–√⌋⌊p⌋\lfloor \sqrt{p}\rfloor 私はこれがかなり良い教育された推測であり、おそらく経験的証拠によって確認されたことを理解していますが、平方根を選ぶ他の理由はありますか?そこで起こっている統計現象はありますか? これは何らかの形でエラーの分散を減らすのに役立ちますか? これは回帰と分類で同じですか?

1
XGBRegressorとxgboost.trainの大きな速度差は?
次のコードを使用してモデルをトレーニングする場合: import xgboost as xg params = {'max_depth':3, 'min_child_weight':10, 'learning_rate':0.3, 'subsample':0.5, 'colsample_bytree':0.6, 'obj':'reg:linear', 'n_estimators':1000, 'eta':0.3} features = df[feature_columns] target = df[target_columns] dmatrix = xg.DMatrix(features.values, target.values, feature_names=features.columns.values) clf = xg.train(params, dmatrix) 約1分で終了します。 Sci-Kit学習メソッドを使用してモデルをトレーニングする場合: import xgboost as xg max_depth = 3 min_child_weight = 10 subsample = 0.5 colsample_bytree = 0.6 objective = …

1
Naive Bayes Classifierの計算でゼロ係数を処理する方法は?
トレーニングデータセットがあり、その上でNaive Bayes Classifierをトレーニングし、確率がゼロの属性値がある場合。後で新しいデータの分類を予測する場合、これをどのように処理しますか?問題は、計算にゼロがある場合、他の解を見つける可能性のある他の値をいくつ取得しても、製品全体がゼロになることです。 例: P(x|spam=yes)=P(TimeZone=US|spam=yes)⋅P(GeoLocation=EU|spam=yes)⋅ ... =0.004P(x|spam=yes)=P(TimeZone=US|spam=yes)⋅P(GeoLocation=EU|spam=yes)⋅ ... =0.004P(x|spam=yes) = P(TimeZone = US | spam=yes) \cdot P(GeoLocation = EU | spam = yes) \cdot ~ ... ~ = 0.004 P(x | s p a m = n o )= P(Tiは、mはE Zo n e = US| spam=no)⋅ P(G e o L …

1
intのpandas列をタイムスタンプデータ型に変換します
特に、1970-1-1以降に渡されたミリ秒数の列を含むデータフレームがあります。このintの列をタイムスタンプデータに変換する必要があるため、タイムスタンプ列シリーズを1970-1-1の日時値のみで構成されるシリーズに追加することにより、最終的に日時データの列に変換できます。 一連の文字列を日時データ(pandas.to_datetime)に変換する方法は知っていますが、intの列全体を日時データまたはタイムスタンプデータに変換する解決策を見つけることができません。

1
Pythonのマップ上のヒートマップ
モード分析には、優れたヒートマップ機能があります(https://community.modeanalytics.com/gallery/geographic-heat-map/)。ただし、マップの比較には役立ちません(レポートごとに1つのみ)。 許可されているのは、ラップされたpythonノートブックにデータを簡単に取り込むことです。そして、Pythonの任意の画像を簡単にレポートに追加できます。 私の質問は次のとおりです。Pythonで実際のマップにヒートマップを再作成するにはどうすればよいですか。私はfolliumとplotlyをチェックアウトしましたが、どちらも同様の機能を持っているようには見えません。

1
最大プーリング層を介した逆伝播
この質問に対する小さなサブ質問があります。 最大プーリング層を逆伝播すると、最大として選択された前の層のニューロンがすべての勾配を取得するように勾配が戻されることを理解しています。私が100%確信していないのは、次のレイヤーの勾配がどのようにプーリングレイヤーに戻されるかです。 したがって、最初の質問は、下の画像のように、完全に接続されたレイヤーに接続されたプーリングレイヤーがあるかどうかです。 プール層のシアンの「ニューロン」の勾配を計算するとき、FC層のニューロンからのすべての勾配を合計しますか?これが正しい場合、プーリング層のすべての「ニューロン」に同じ勾配がありますか? たとえば、FC層の最初のニューロンの勾配が2で、2番目の勾配が3で、3番目の勾配が6の場合、プール層の青と紫の「ニューロン」の勾配は何ですか。なぜですか。 2番目の質問は、プーリングレイヤーが別の畳み込みレイヤーに接続されるタイミングです。勾配を計算する方法は?以下の例を参照してください。 プール層の最上部の右端の「ニューロン」(緑色の輪郭線)については、次のconv層の紫色のニューロンの勾配を取得し、それを元に戻します。 緑色の塗りつぶしはどうですか?チェーンルールのため、次のレイヤーのニューロンの最初の列を乗算する必要がありますか?または、それらを追加する必要がありますか? 方程式の束を投稿しないでください、そして、方程式に頭を包み込もうとしているので、私の答えがそこにあると言ってください、そして、私はまだそれを完全に理解していないので、私はこの質問を簡単に尋ねています仕方。

3
Doc2vec(gensim)-目に見えない文章のラベルを推測するにはどうすればよいですか?
https://radimrehurek.com/gensim/models/doc2vec.html たとえば、doc2vecを次のようにトレーニングした場合 「aaaaaAAAAAaaaaaa」-「ラベル1」 「bbbbbbBBBBBbbbb」-「ラベル2」 Doc2vecを使用して「aaaaAAAAaaaaAA」がラベル1であると推測できますか? Doc2vecは単語ベクトルとラベルベクトルをトレーニングできることを知っています。このベクトルを使用して、どのラベルの目に見えない文(訓練された単語の組み合わせ)を推測できますか?
13 gensim 

5
scikit-learnランダムフォレストの機能の重要性は非常に高い標準偏差を示しています
私はscikit-learn Random Forest Classifierを使用しており、この例のように機能の重要度をプロットします。 ただし、機能の重要度の標準偏差は、機能の重要度自体よりも常に大きいという意味で、私の結果は完全に異なります(添付画像を参照)。 このような動作をすることは可能ですか、それをプロットするときにいくつかの間違いをしていますか? 私のコードは次のとおりです。 import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(predictors.values, outcome.values.ravel()) importance = clf.feature_importances_ importance = pd.DataFrame(importance, index=predictors.columns, columns=["Importance"]) importance["Std"] = np.std([tree.feature_importances_ for tree in clf.estimators_], axis=0) x = range(importance.shape[0]) y = importance.ix[:, …

1
(動的)ベイズネットワークとHMMの違いは何ですか?
HMM、粒子フィルター、およびカルマンフィルターは、動的ベイズネットワークの特殊なケースであることを読みました。ただし、HMMのみを知っているため、ダイナミックベイズネットワークとの違いはわかりません。 誰か説明してもらえますか? あなたの答えが次のようになりますが、ベイズネットワークの場合はいいでしょう: 隠れマルコフモデル 隠れマルコフモデル(HMM)は、5タプルのです。λ = (S、O 、A 、B 、Π )λ=(S,O,A,B,Π)\lambda = (S, O, A, B, \Pi) S≠ ∅S≠∅S \neq \emptyset:状態のセット(例:「音素の始まり」、「音素の中間」、「音素の終わり」) O ≠ ∅O≠∅O \neq \emptyset:考えられる一連の観測(オーディオ信号) A ∈ R| S| × | S|A∈R|S|×|S|A \in \mathbb{R}^{|S| \times |S|}:状態から状態に到達する確率を与える確率行列。i j(a私はj)(aij)(a_{ij})iiijjj B∈R|S|×|O|B∈R|S|×|O|B \in \mathbb{R}^{|S| \times |O|}:確率を与えて状態の観測値を取得する確率行列。k l(bkl)(bkl)(b_{kl})kkklll Π∈R|S|Π∈R|S|\Pi \in \mathbb{R}^{|S|}:いずれかの状態で開始する初期分布。 通常、有向グラフとして表示されます。各ノードは1つの状態対応し、遷移確率はエッジに示されます。s∈Ss∈Ss \in S …

2
非対称コスト関数を使用した線形回帰?
私はいくつかの値を予測したいのですが、可能な限り低く、よりも大きい間で最適化する予測を取得しようとしています。つまり、 Y(x )Y(x)Y(x)Y^(x )Y^(x)\hat Y(x)Y(x )Y(x)Y(x)コスト{ Y(X )≳ Y^(X )} > >コスト{ Y^(X )≳ Y(x )}cost{Y(x)≳Y^(x)}>>cost{Y^(x)≳Y(x)}\text{cost}\left\{ Y(x) \gtrsim \hat Y(x) \right\} >> \text{cost}\left\{ \hat Y(x) \gtrsim Y(x) \right\} 単純な線形回帰は完全にうまくいくと思います。だから私はこれを手動で実装する方法をいくらか知っていますが、私はこの種の問題を抱えた最初の人ではないと思います。私がやりたいことをしているパッケージ/ライブラリ(できればpython)がありますか?探す必要があるキーワードは何ですか? 関数Y_0(x)> 0を知っていたらY0(x )> 0Y0(x)>0Y_0(x) > 0、Y(x )> Y0(x )Y(x)>Y0(x)Y(x) > Y_0(x)ます。これらの制限を実装する最良の方法は何ですか?

1
ファジートークンのシーケンス内の文法を認識する
主にアイテムのリストを含むテキストドキュメントがあります。 各アイテムは、異なるタイプの複数のトークンのグループです:FirstName、LastName、BirthDate、PhoneNumber、City、Occupationなど。トークンは単語のグループです。 アイテムは複数の行に配置できます。 ドキュメントのアイテムはほぼ同じトークン構文を持っていますが、必ずしも完全に同じである必要はありません。 それらは、アイテム間だけでなくアイテム間でも、より多く/より少ないトークンである場合があります。 FirstName LastName BirthDate PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber Occupation UnrecognizedToken FirstName LastName PhoneNumber Occupation City FirstName LastName BirthDate PhoneNumber City Occupation 目標は、使用されている文法を識別することです。例えば Occupation City 最後に、すべてのアイテムを特定します。完全に一致するとは限りません。 短く読みやすくするために、代わりにいくつかのエイリアスA、B、C、D、...を使用して、これらのトークンタイプを指定しましょう。 例えば A B C D F A B C D …

3
クラスのバランスが取れていない場合、検証/テストデータセットでサンプリングを使用する必要がありますか?
私は機械学習の初心者であり、状況に直面しています。IPinYouデータセットを使用してリアルタイム入札の問題に取り組んでおり、クリック予測をしようとしています。 知っているかもしれませんが、データセットは非常に不均衡です。1つのポジティブな例(クリック)に対して約1300のネガティブな例(クリックなし)です。 これが私がすることです: データを読み込む データセットを3つのデータセットに分割します。A=トレーニング(60%)B =検証(20%)C =テスト(20%) 各データセット(A、B、C)について、比率が5になるように各ネガティブクラスでアンダーサンプリングを行います(1つのポジティブな例に対して5つのネガティブな例)。これにより、よりバランスのとれた3つの新しいデータセットが得られます。A 'B' C ' 次に、データセットA 'とロジスティック回帰を使用してモデルをトレーニングします。 私の質問は: どのデータセットを検証に使用する必要がありますか?BまたはB '? どのデータセットをテストに使用する必要がありますか?CまたはC ' モデルの評価に最も関連するメトリックはどれですか?F1Scoreはよく使用されるメトリックのようです。しかし、ここでは不均衡なクラスのため(データセットBとCを使用する場合)、精度は低く(0.20未満)、F1Scoreは低いリコール/精度の影響を非常に受けます。aucPRまたはaucROCを使用する方が正確ですか? 学習曲線をプロットする場合、どのメトリックスを使用すればよいですか?(検証にB 'データセットを使用する場合、%errorは関係ないことを知っています) お時間をいただきありがとうございます! よろしく。

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