データサイエンス

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

4
XGBoostを使用する場合、機能エンジニアリングはまだ有用ですか?
XGBoostに関する資料を読んでいました。この方法はツリーに基づいているため、変数のスケーリングを必要としないようです。この方法では、複雑な非線形パターン、相互作用をキャプチャできます。また、数値変数とカテゴリ変数の両方を処理でき、冗長な変数はこのメソッドにあまり影響を与えないようです。 通常、予測モデリングでは、所有しているすべての機能の中からいくつかを選択し、所有している一連の機能からいくつかの新しい機能を作成することもできます。したがって、機能のサブセットを選択すると、機能のセットに冗長性があると考えられます。現在の機能セットからいくつかの新しい機能を作成するということは、現在の機能に対して機能的な変換を行うことを意味します。次に、これら2つのポイントの両方をXGBoostでカバーする必要があります。では、XGBoostを使用するには、これらの調整パラメーターを賢く選択するだけでよいということですか。XGBoostを使用して機能エンジニアリングを行うことの価値は何ですか?

3
CNNメモリ消費
提案されたモデルが、指定された量のメモリを備えたGPUでトレーニングされるのに十分小さいかどうかを推定できるようにしたい このような単純なCNNアーキテクチャがある場合: Input:50x50x3 C1:32個の3x3カーネル、パディング付き(実際には、入力深度を考えると、実際には3x3x3でしょうか?) P1:2x2、ストライド2 C2:64 x 3x3カーネル、パディングあり P2:2x2、ストライド2 FC:500ニューロン Output:softmax 10クラス 64のミニバッチサイズ 32ビットの浮動小数点値を想定して、トレーニング中にネットワークの各レイヤーのメモリコストをどのように計算しますか?そして、そのようなモデルをトレーニングするために必要な総メモリは?

1
Apache Sparkでコサイン類似度を計算する
特定の単語のIDFが計算されたDataFrameがあります。例えば (10,[0,1,2,3,4,5],[0.413734499590671,0.4244680552337798,0.4761400657781007, 1.4004620708967006,0.37876590175292424,0.48374466516332]) .... and so on クエリQを指定すると、このクエリのTF-IDFを計算できます。データフレーム内のすべてのドキュメントを含むクエリのコサイン類似度を計算するにはどうすればよいですか(100万のドキュメントに近い) ベクトルの乗算を使用して、map-reduceジョブで手動で実行できます コサイン類似度(Q、ドキュメント)=ドット積(Q、ドキュメント)/ || Q || * ||ドキュメント|| しかし確かにSpark MLはテキストのコサイン類似度の計算をネイティブでサポートする必要がありますか? 言い換えると、検索クエリが与えられた場合、DataFrameからドキュメントTF-IDFの最も近い余弦をどのように見つけるのですか?

2
ビッグデータセットの機械学習のベストプラクティス
私はマスターを卒業しようとしており、機械学習について学び、それを使って研究プロジェクトを実行していました。ビッグデータセット(100 GBまたはTBなど)で機械学習タスクを実行するときの業界のベストプラクティスについて知りたいです。仲間のデータサイエンティストが彼らの経験を共有できるかどうか感謝します。ここに私の質問があります: 明らかに、非常に大きなデータセットはトレーニングに長い時間がかかります(数日または数週間になる場合があります)。多くの場合、さまざまなモデル(SVM、ニューラルネットワークなど)をトレーニングして、より良いパフォーマンスモデルを比較して見つける必要があります。業界のプロジェクトでは、できるだけ早く結果を出したいのですが、最高のパフォーマンスが得られると思います。トレーニングとテストの時間を短縮するためのヒントはありますか?データセットをサブセット化することをお勧めする場合は、データセットをサブセット化して、データセットのシナリオのすべてまたは大部分をカバーするのに最適な方法を知りたいと思います。 交差適合を実行すると、過剰適合が減少する可能性があるため、より良いことはわかっています。ただし、相互検証はトレーニングにも時間がかかり、相互検証でトレーニングされたモデルは直接実装されない可能性があります(Python sklearnエクスペリエンスから言えば、実装するクロス検証テストの後に、モデルをデータセットで再度トレーニングする必要があります)。通常、ビッグデータプロジェクトで相互検証を行っていますか、それともトレーニングテストの分割で問題を解決していますか? フィードバックに感謝します。



1
ニューラルネットによる強化学習について(Qラーニング)
ニューラルネットを関数近似器として使用している場合の強化学習とマルコフ決定過程(MDP)を理解しようとしています。 環境を確率論的に探索するMDPと、これがどのように学習パラメーターにマッピングされるか、そして最終的なソリューション/ポリシーがどのように見つかるかとの関係に問題があります。 Qラーニングの場合、ニューラルネットワークは本質的にq値自体の関数近似器として機能するため、将来は非常に多くのステップがあると私は思いますか?これは、バックプロパゲーションまたは他の方法を介して更新パラメーターにどのようにマッピングされますか? また、ネットワークが将来の報酬を予測する方法を学習した後、これは実際に意思決定を行うという点でシステムにどのように適合しますか?私は、最終的なシステムが確率的に状態遷移を行わないことを想定しています。 ありがとう

2
機械学習のステップ
予測モデルを作成する場合、以下の一連のステップオプションのうち正しいものはどれですか。 オプション1: 最初に最も明らかに悪い予測子を排除し、必要に応じて残りを前処理します。次に、相互検証を使用してさまざまなモデルをトレーニングし、いくつかの最良のものを選択し、それぞれが使用した上位予測子を特定し、それらのモデルのみを使用してそれらのモデルを再トレーニングし、精度を評価します。再度交差検証を使用して、最適なものを選択し、主要な予測子を使用して完全なトレーニングセットでトレーニングし、それを使用してテストセットを予測します。 オプション2: まず、最も明らかに悪い予測子を排除し、必要に応じて残りを前処理してから、再検証機能選択(例:rfを使用したRFE)などの特徴選択手法を使用して、交差検証を行い、主要な予測子の理想的な数とこれらの予測子を特定します。次に、交差検証を使用してさまざまなモデルタイプをトレーニングし、以前に特定された上位予測子でどのモデルが最高の精度を提供するかを確認します。次に、完全なトレーニングセットの予測子を使用して、これらのモデルの最適なモデルを再度トレーニングし、それを使用してテストセットを予測します。

1
オートエンコーダーの再構築で、逆ではなくフォワードアクティベーションと同じアクティベーション機能を使用するのはなぜですか?
あなたは、n個のニューロンと入力層を有し、第一の中間層があるとし典型的で、ニューロンを。次に、次のにして、隠れ層の番目のニューロンの作動を計算します。m &lt; n a j jmmmm&lt;nm&lt;nm < najaja_jjjj aj=f(∑i=1..nwi,jxi+bj)aj=f(∑i=1..nwi,jxi+bj)a_j = f\left(\sum\limits_{i=1..n} w_{i,j} x_i+b_j\right)、ここではまたはような活性化関数です。tanh シグモイドffftanhtanh\tanhsigmoidsigmoid\text{sigmoid} ネットワークをトレーニングするには、で示される入力の再構成を計算し、と間の誤差を最小化します。ここで、番目の要素は通常、次のように計算されます。z x i zzzzzzzxxxiiizzz zi=f(∑j=1..mw′j,iaj+b′i)zi=f(∑j=1..mwj,i′aj+bi′) z_i = f\left ( \sum\limits_{j=1..m} w_{j,i}' a_j+b'_i \right) なぜ再構築されたは通常、逆関数を使用する代わりに同じ活性化関数を使用して計算されるのか、なぜ結合された重みとバイアスを使用する代わりに別々のとが役立つのでしょうか?次のように、逆活性化関数を使用して再構築を計算すること(たとえば、)を実行する方がはるかに直感的です。w ′ b ′ f − 1アークタンzzzw′w′w'b′b′b'f−1f−1f^{-1}arctanharctanh\text{arctanh} z′i=∑j=1..mf−1(aj)−bjwTj,izi′=∑j=1..mf−1(aj)−bjwj,iT z_i' = \sum\limits_{j=1..m} \frac{f^{-1}(a_j)-b_j}{w_{j,i}^T} ここでは、結合された重み、つまりw '= w ^ Tが使用され、入力層に追加のバイアスセットを導入する代わりに、隠れ層のw′=wTw′=wTw' = w^Tバイアスb_jが使用されることに注意してくださいbjbjb_j。 そして、非常に関連する質問:再構成を計算する代わりに、フィーチャを視覚化するために、通常、隠れ層の次元を使用して単位行列を作成します。次に、行列の各列を再活性化関数への入力として使用し、入力ニューロンに出力を誘導します。再活性化関数については、同じ活性化関数(またはziziz_i)または逆関数(それぞれz′izi′z'_i)を使用する方が良いでしょうか?

2
ディスクに保存されたときのランダムフォレストの禁止サイズ
cPickleを使用してディスクに保存した場合:https ://stackoverflow.com/questions/20662023/save-python-random-forest-model-to-file 、私のランダムフォレストは6.57 GBです。 with open('rforest.cpickle', 'wb') as f: cPickle.dump(rforest, f) Herokuでホストされているpython APIを介して予測を行うためにフォレスト自体を使用したいと思います。もちろん、そのファイルサイズは許容できません。 ファイルサイズが非常に大きいのはなぜですか?アンサンブルには500本のツリーがあります。保存したいのは、予測として使用されるため、完成したツリー自体だけです。ディスク上に約7 GBのスペースを必要とする500のツリーのそれぞれを構成するのは、実際のノードとエッジですか? scikitlearnのrandomforestregressorを使用しました: def buildForest(self, X_train, y_train): rf = RandomForestRegressor(n_estimators=500, verbose=1) rf.fit_transform(X_train, y_train) return rf また、APIを介してモデルにアクセスできるようにするより良い方法がある場合は、それも知っておくとよいでしょう。 更新:予測能力をほとんど失うことなく100ツリーに減らしたため、保存サイズは1.3 GBになりました。

1
Python Seaborn:エラーバーはバープロットでどのように計算されますか?
Pythonで棒グラフを生成するためにseabornライブラリを使用しています。エラーバーの計算にどの統計情報が使用されているのかと思いますが、Seabornのbarplotのドキュメントでこれに関する参照を見つけることができません。 私の場合はバーの値が平均に基づいて計算されることを知っています(既定のオプション)。エラーバーは正規分布の95%信頼区間に基づいて計算されると思いますが、確認したいと思います。

4
数値と名義の混合離散データのクラスタリング
私のデータには、2進数(数値)および名目/カテゴリーの調査回答が含まれています。すべての応答は離散的で、個人レベルです。 データは形状です(n = 7219、p = 105)。 カップルのもの: カテゴリカルおよび数値のバイナリデータで機能する類似性の測度を使用して、クラスタリング手法を特定しようとしています。このタイプの問題のために設計されたR kmodesクラスタリングとkprototypeにはテクニックがありますが、私はPythonを使用していて、このタイプの問題にうまく機能するsklearnクラスタリングのテクニックが必要です。 個人のセグメントのプロファイルを作成したい。つまり、この個人グループは、これらの機能のセットをより重視します。

1
ドロップアウトと勾配降下について
ディープニューラルネットワークでドロップアウトを実装する方法を探しています。直感に反するものが見つかりました。フォワードフェーズでは、1と0のランダムテンソルを使用してマスクをアクティブ化し、ネットに重みの平均を学習させます。これは、ネットをより一般化するのに役立ちます。ただし、勾配降下の更新フェーズでは、アクティブ化はマスクされません。これは私には直観に反するようです。dropoutを使用して接続のアクティブ化をマスクする場合、勾配降下フェーズをマスクしないのはなぜですか?


1
動作をハードコーディングせずに簡単な機械学習を行うにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Data Science Stack Exchangeのトピックとなるようにします。 5年前休業。 私は常に機械学習に興味を持っていましたが、簡単な「Hello World」の例から始めることについて1つのことを理解できません。ハードコーディング動作を回避するにはどうすればよいですか? たとえば、ランダムに配置された障害物を回避する方法をボットに「教える」場合、障害物が動き回るので、相対運動だけを使用することはできませんが、距離などのハードコードはしたくありません。機械学習の全体のポイントを台無しにします。 明らかに、ランダムにコードを生成することは実際的ではないので、どうすればこれを実行できますか?

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