データサイエンス

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

2
LightGBMの結果は、データの順序によって異なります
列数、列名、値がまったく同じ2つのデータセットAとBがあります。唯一の違いは、それらの列の順序です。次に、次の手順で2つのデータセットのそれぞれでLightGBMモデルをトレーニングします 各データセットをトレーニングとテストに分割します(AとBの両方に同じランダムシードと比率を使用します) ハイパーパラメータをほぼデフォルトのままにします ランダムな状態を固定数として設定(再現用) グリッド検索を使用してlearning_rateを調整する トレーニングセットでLightGBMモデルをトレーニングし、テストセットでテストする テストセットで最高のパフォーマンスを持つ学習率が選択されます 2つのデータセットの出力モデルは非常に異なるため、列の順序はLightGBMを使用したモデルトレーニングのパフォーマンスに影響を与えると思います。 これが事実である理由を知っていますか?

3
通常、RNNにはCNNよりも隠れ層が少ないのはなぜですか?
CNNは何百もの隠れ層を持つことができ、それらはしばしば画像データで使用されるため、多くの層を持つとより複雑になります。 ただし、私が見た限りでは、RNNには通常、2〜4などのいくつかのレイヤーがあります。たとえば、心電図(ECG)の分類では、4層のLSTMと10〜15層のCNNを使用した論文で同様の結果が得られました。 これは、RNN / LSTMが(勾配消失の問題により)より深い場合、トレーニングが難しくなるためか、RNN / LSTMがシーケンシャルデータをすばやくオーバーフィットする傾向があるためですか?

1
Java Weka APIでSMOTEを使用する方法
Java Weka APIを使用して分類モデルを構築しようとしています。トレーニングデータセットにクラスの不均衡の問題があります。このため、SMOTEを使用してクラスの不均衡の問題を軽減したいと考えています。しかし、Java Weka APIでそれを使用する方法がわかりません。

3
「曲線」は「線形」と見なされますか?
線形回帰では、多項式を一連のデータポイントに近似します。Bishopのパターン認識と機械学習の本には、フィットが曲線または直線である例がいくつかあります。曲線が線形であるかどうか、私は少し混乱しています。線形という用語は、近似が線形関数または次数1の多項式、つまり直線であることを意味します。しかし、多くのリソースでは、フィットが次数3、9などの多項式になる例が示されています。したがって、これらの高次多項式は線形ですか?



1
Excelでどこまで行けるのですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 私のビジネスでは、すべての分析をExcelで処理しています。これには、主にスケジューリング、生産計画、会計業務が含まれます。現在、予測モデルを少し追加することを検討しており、Excelで十分ですが、複雑なモデルはサポートされていません。 私が見ているように、Excelの主な利点は、Excelの使いやすさと、使い慣れるようにユーザーを見つけてトレーニングできることです。一方、より洗練された環境(R、pythonなど)では、さまざまな分析タスクを処理できますが、より高度なトレーニングを受けた個人が必要です。 Excelがデータサイエンスに十分であるかどうかについてもこの質問を読みました。それは私の目的には少し範囲外ですが、RやPythonなどのツールはExcelよりもはるかに優れているという結論に達しました。 私の質問は(データ分析の文脈で):「より高度なツールに変更する必要なしに、Excelでどれだけの距離をとることができるか」です。または「Excelから-Rにしましょう-どの時点で移行する必要がありますか?」 どうもありがとうございました!

2
Fメジャーが分類タスクに推奨されるのはなぜですか?
Gメジャー(またはFowlkes–Mallowsインデックス)が(教師なし)クラスタータスクに一般的に使用されるのに対し、Fメジャーは通常(教師付き)分類タスクに使用されるのはなぜですか? Fメジャーは、精度と再現率の調和平均です。 Gメジャー(またはFowlkes–Mallowsインデックス)は、精度と再現率の幾何平均です。 以下は、異なる平均のプロットです。 = 2 ⋅ P R E 、C 、I S I O N ⋅ R E C A L LP R E 、C 、I S I O N + R E C A L L=2⋅prec私s私oん⋅recallprec私s私oん+recall= 2\cdot\frac{precision\cdot recall}{precision + recall} = P R E 、C 、I S I …

1
VCディメンションの正確な定義は何ですか?
私はAndrew Ng Stanfordの講義から機械学習を勉強していて、VC次元の理論に出くわしました。講義と私が理解したことによると、VCディメンションの定義は、 分類器によって粉砕できるようにポイントのセットを見つけることができ(つまり、すべての可能な2 nラベリングを正しく分類する)、粉砕できるn + 1ポイントのセットを見つけることができない場合(つまり、任意のセットの場合)n + 1ポイントには、分類子がすべてのポイントを正しく分離できないように、少なくとも1つのラベル付け順序があります)。VCディメンションはnです。んnn2ん2n2^nn + 1n+1n+1n + 1n+1n+1んnn また、教授は例を取り、これをうまく説明しました。それは: みましょう、 H= { S 、E 、T 、O 、F l i n e a r c l a s s i f i e r s i n 2 D i m e n s i o …

2
列の値がNaNの場合に行全体を削除する方法[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Data Science Stack Exchangeのトピックとなるようにします。 2年前休業。 列に関連するNaN値を含むすべての行を削除します。次のようなデータセットがあるとしましょう: Age Height Weight Gender 12 5'7 NaN M NaN 5'8 160 M 32 5'5 165 NaN 21 NaN 155 F 55 5'10 170 NaN 「Gender」にNaN値があるすべての行を削除したい。私が望む出力: Age Height Weight Gender 12 5'7 NaN M NaN 5'8 160 M 21 NaN 155 F …

2
合成グラデーション-実用的なメリットは何ですか?
RNNで合成グラデーションを使用する2つの動機を見ることができます。 予測された勾配で各レイヤーを即座に修正することにより、トレーニングをスピードアップします より長いシーケンスを学習できるようにするため どちらにも問題があります。注意してください、私は合成グラデーションが本当に好きで、それらを実装したいと思います。しかし、私の考えの軌跡がどこで間違っているかを理解する必要があります。 ここで、ポイント1とポイント2が効果がないように見える理由を示します。実際に効果がある場合は、修正する必要があります。 ポイント1: Synthetic Gradientsは、fwdプロップの間でも、別の「ミニヘルパーネットワーク」(DNIと呼ばれる)を使用して、現在のレイヤーに上からどの勾配が到達するかを通知できることを示しています。 ただし、このような勾配は、後でいくつかの操作を実行するだけです。DNIをトレーニングする必要があることを除いて、DNIを使用しない場合と同じ量のBackpropを実行する必要があります。 この非同期性を追加しても、デバイスで同じ数の計算を実行する必要があるため、従来の「ロックされた」フルfwdprop->フルバックプロップシーケンスよりもレイヤーのトレーニングが速くならないはずです。計算が時間内にスライドするだけです これにより、1)は機能しないと思います。各レイヤーの間にSGを追加するだけでは、トレーニング速度は向上しません。 ポイント2: では、最後のレイヤーにのみSGを追加して、「将来からの勾配」を予測し、それがforward propの最後のタイムステップである場合に限ってみましょう。 このようにして、LSTMは予測を停止し、バックプロパゲートする必要がありますが、受信した将来の勾配を予測できます(最後のタイムステップにあるDNIの助けを借りて)。 いくつかのトレーニングセッション(セッションA、セッションB)を検討してください。 fwdprop timestep_1A ---> fwdprop timestep_2A ---> fwdprop timestep_3A ---->停止してbkprop! fwdprop timestep_1B ---> fwdprop timestep_2B ---> fwdprop timestep_3B ---->停止してbkprop! ネットワークに2つの半分の6つのタイムステップを「解析」するように強制しました。3つのタイムステップ、残りの3つのタイムステップです。 「セッションA」の最後にDNIがあり、「セッションBの最初から(将来から)どのような勾配になるか」を予測していることに注意してください。そのため、timestep_3Aには「timestep_1Bから得られたであろう」勾配が備わっているため、A中に行われた修正の信頼性が高くなります。 しかし、ちょっと!これらの予測された「合成勾配」はとにかく非常に小さい(無視できる)-結局、それが新しいbackprop セッションBを開始する理由です。それらが小さすぎないのではなく、6つのタイムステップすべてを単一の長いbkprop "セッションA"で解析するだけです。 したがって、ポイント2)もメリットをもたらすべきではないと思います。fwdpropの最後のタイムステップにSGを追加すると、長いシーケンスを効果的にトレーニングできますが、勾配の消失はどこにも行きませんでした。 OK。たぶん、別々のマシンで"セッションA"、"セッションB" などをトレーニングすることの利点を得ることができますか?しかし、これは通常のミニバッチを並行して単にトレーニングすることとどのように異なるのでしょうか?覚えておいてください、ポイント2で言及されました:物事はとにかく消えているsessionA予測勾配によって悪化します 質問:上記の2つの点は有益ではないようですので、合成グラデーションの利点を理解してください。

1
バックプロップでソフトマックスの勾配を適用する方法
私は最近、MNISTの10桁分類のモデルを学習する必要がある宿題をしました。HWにはいくつかの足場コードがあり、私はこのコードのコンテキストで作業することになっていた。 私の宿題は機能します/テストに合格しましたが、今はすべてをゼロから実行しようとしています(自分のnnフレームワーク、ハードウェアスキャフォールディングコードなし)。バックプロップステップでソフトマックスの壮大さを適用して立ち往生しています。足場コードは正しくない可能性があります。 ハードウェアでは、nnの最後のノードとして、「softmax loss」と呼ばれるものを使用します。つまり、何らかの理由で、ソフトマックスをアクティベーション関数として扱い、クロスエントロピーを個別の損失関数として扱うのではなく、クロスエントロピー損失と一緒にソフトマックスのアクティベーションに参加することにしました。 hw loss funcは次のようになります(最低限私が編集します)。 class SoftmaxLoss: """ A batched softmax loss, used for classification problems. input[0] (the prediction) = np.array of dims batch_size x 10 input[1] (the truth) = np.array of dims batch_size x 10 """ @staticmethod def softmax(input): exp = np.exp(input - np.max(input, axis=1, keepdims=True)) return …

1
時系列データの異なるセットを比較する方法
Pythonとsklearnを使用してtime#seriesの間に異常検出を実行しようとしています(ただし、他のパッケージの提案は大歓迎です!)。 10個の時系列のセットがあります。各時系列は、タイヤのトルク値(合計10タイヤ)から収集されたデータで構成されており、セットには同じ数のデータポイントが含まれていない場合があります(セットサイズが異なります)。各時系列データは、ほとんど、tire_id、タイムスタンプ、およびsig_value(信号またはセンサーからの値)です。1つの時系列のサンプルデータは次のようになります。 tire_id timestamp sig_value tire_1 23:06.1 12.75 tire_1 23:07.5 0 tire_1 23:09.0 -10.5 今、私はそれらの10を持っています、そしてそれらの2は奇妙に振る舞います。これは異常検出の問題であることを理解していますが、オンラインで読んだほとんどの記事は、同じ時系列内の異常ポイントを検出しています(ある時点で、そのタイヤのトルク値が正常でない場合)。 どの2つのタイヤが異常な動作をしているのかを検出するために、クラスタリング手法、基本的にはk-meansクラスタリングを使用してみました(監視されていないため)。 k-meansクラスタリングにフィードするデータを準備するために、各時系列(各タイヤについて)について計算しました。 最大の振幅(差)を持つ隣接する極大と極小の上位3セット トルク値の平均 トルク値の標準偏差 また、クラスターの数を2のみに設定したので、クラスター1または2のいずれかです。 したがって、(クラスターを割り当てた後の)最終結果は次のようになります。 amplitude local maxima local minima sig_value_std \ tire_0 558.50 437.75 -120.75 77.538645 tire_0 532.75 433.75 -99.00 77.538645 tire_0 526.25 438.00 -88.25 77.538645 tire_1 552.50 -116.50 436.00 71.125912 tire_1 …


2
AdaGradとAdaDeltaの数学を理解する
私はプロジェクト用にいくつかのモデルを構築していますが、AdagradおよびAdadeltaアルゴリズムの計算に頭を悩ますことはできません。 私はバニラ勾配降下法がどのように機能するかを理解しており、それを正常に機能させるためのコードを作成しました。 誰かがこれらの2つのことを私に説明したり、それらを理解するためのリソースを提供したりすると、私は感謝します。

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