データサイエンス

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

3
EC2を使用する場合のインスタンスとコア
「中規模データ」プロジェクトと呼ばれることが多いものに取り組んで、4〜32コアのどこでも単一のシステムでコードを並列化できました(主にPythonでのモデリングと予測)。現在、EC2上のクラスターへのスケールアップを検討しており(おそらくStarCluster / IPythonを使用していますが、他の提案も受け入れています)、インスタンス上のクラスターとインスタンス上のコアに分散する作業を調整する方法に困惑しています。 インスタンス間および各インスタンスのコア間で並列化することは実際的ですか?もしそうなら、誰もがコアの少ないインスタンス対コアの多いインスタンスをいくつか実行することの長所と短所を簡単に説明できますか?インスタンスごとのコアに対するインスタンスの適切な比率を選択するための経験則はありますか? 帯域幅とRAMは私のプロジェクトでは些細な問題ではありませんが、それらがボトルネックになっていて再調整するのは簡単です。繰り返しテストすることなく、コアの適切な組み合わせをインスタンスにベンチマークすることは非常に難しく、単一のテストをすべての状況に適用するにはプロジェクトがあまりにも多様です。事前に感謝します。これを適切にグーグルで検索できなかった場合は、他の場所で正しい答えを教えてください。
12 parallel  clusters  aws 

2
ニューラルネットワークは
有名なTensorflow Fizz BuzzジョークとXOr問題の精神に基づいて、y= x2y=x2y = x^2関数を実装するニューラルネットワークを設計することが可能であれば、私は考え始めましたか? 数値の表現(たとえば、バイナリ形式のベクトルとして、その数5はとして表される[1,0,1,0,0,0,0,...])が与えられると、ニューラルネットワークはその二乗(この場合は25)を返すことを学習する必要があります。 y= x2y=x2y=x^2実装できれば、おそらくy= x3y=x3y=x^3と一般的にxの任意の多項式を実装できます。次に、テイラー級数を使用して、y= 罪(x )y=sin⁡(x)y=\sin(x)近似できます。これにより、フィズバズ問題-ニューラルネットワークが解決されます分割の残りを見つけることができます。 明らかに、NNの線形部分だけではこのタスクを実行できないため、乗算を実行できれば、アクティベーション関数のおかげでそれが発生します。 テーマについてアイデアや読書を提案できますか?

3
ニューラルネットワークを設計するための経験則はありますか?
ニューラルネットワークアーキテクチャは、ほとんどが問題自体と入出力のタイプに基づいていることを知っていますが、それでも、1つを構築し始めると常に「正方形」が存在します。だから私の質問は-MxN(Mはレコード数、Nはフィーチャの数)の入力データセットとCの可能な出力クラスを考えると-何層/ユニットから始める必要があるかについての経験則はありますか?

1
回帰のための高カーディナリティのカテゴリカル機能を備えた機能の重要性(数値依存変数)
私はランダムフォレストの機能の重要度を使用して、すべての機能がカテゴリカルであり、それらの多くに多くのレベル(100〜1000のオーダー)がある回帰問題の経験的な機能選択を実行しようとしました。ワンホットエンコーディングでは、各レベルにダミー変数が作成されるため、機能の重要性は各機能(列)ではなく、各レベルにあります。これらの機能の重要性を集計する良い方法は何ですか? 機能のすべてのレベルの平均の重要度を合計または取得することを考えました(おそらく、前者はより多くのレベルの機能に偏っています)。この問題に関する参考資料はありますか? 機能の数を減らすために他に何ができますか?私はグループなげなわを知っています、scikit-learnに使いやすいものを見つけることができませんでした。

4
モデルが過剰適合し始めたことを知る方法は?
次の抜粋が私の質問がどうなるかについての洞察を提供してくれることを願っています。これらはhttp://neuralnetworksanddeeplearning.com/chap3.htmlからのものです その後、学習は徐々に遅くなります。最後に、エポック280前後で、分類精度はほとんど改善しなくなります。後のエポックでは、エポック280での精度の値に近い小さな確率的変動が見られるだけです。これを、トレーニングデータに関連するコストがスムーズに低下し続ける以前のグラフと比較してください。そのコストだけを見ると、モデルはまだ「良くなっている」ように見えます。しかし、テスト精度の結果は、改善が幻想であることを示しています。フェルミが嫌ったモデルのように、エポック280の後で私たちのネットワークが学習するものは、もはやテストデータに一般化されません。そして、それは有用な学習ではありません。私たちは、ネットワークがエポック280を超えて過剰適合または過剰訓練していると言います。 ニューラルネットワークをトレーニングしていて、(トレーニングデータの)コストはエポック400まで下がりますが、エポック280の後で分類精度は静的になり(いくつかの確率的変動がない場合)、モデルがエポック280以降のトレーニングデータに適合していると結論付けます。 テストデータのコストはエポック15前後まで改善することがわかりますが、トレーニングデータのコストは引き続き改善されていますが、その後は実際に悪化し始めています。これは、モデルが過剰適合であることを示すもう1つの兆候です。しかし、それはパズルを提起します。これは、過適合が学習を支配するようになる時点として、エポック15とエポック280のどちらを考慮すべきかということです。実用的な観点から見ると、テストデータのコストは分類精度の代用に過ぎず、テストデータの分類精度を向上させることが重要です。そして、エポック280は、それを超えて、ニューラルネットワークで学習を支配し過ぎるポイントと見なすのが最も理にかなっています。 以前のトレーニングコストと比較したテストデータの分類精度とは対照的に、現在はトレーニングコストに対するテストデータのコストを課しています。 次に、この本は、280がオーバーフィッティングが始まった正しい時代である理由を説明しています。それが私の問題です。私はこれに頭を包むことができません。 コストを最小限に抑えるようモデルに求めているため、コストは、正確に分類するための独自の強度の尺度として使用するメトリックです。280をオーバーフィッティングが始まった正しいエポックと考える場合、特定のテストデータではより優れた分類子であるにもかかわらず、低い信頼度で意思決定を行っているため、逸脱しやすいバイアスモデルを作成していませんか?テストデータに示された結果から?

1
ディープラーニングで正方形の画像を使用する理由
VGG、ResNetなどの高度なディープラーニングモデルのほとんどは、入力として正方形の画像を必要とします。通常、ピクセルサイズは224x224224x224224x224です。 入力が同じ形状でなければならない理由はありますか、または100 x 200で convnetモデルを構築できますか?100x200100x200100x200なければならない(たとえば、顔の認識を行いたい場合や、縦向きの画像がある場合)。 ピクセルサイズを大きくすると、512x512512x512512x512メリットが増えますか?

2
検証の損失と精度は一定のまま
このペーパーを一連の医療画像に実装しようとしています。ケラスでやってます。ネットワークは基本的に4つのconvおよびmax-poolレイヤーで構成され、その後に完全に接続されたレイヤーとソフト最大分類子が続きます。 私の知る限り、私はこの論文で言及されているアーキテクチャに従っています。ただし、検証の損失と正確さは、全体を通して一定のままです。精度は〜57.5%に固定されているようです。 私がどこで間違っているのかについてのどんな助けも大歓迎です。 私のコード: from keras.models import Sequential from keras.layers import Activation, Dropout, Dense, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.optimizers import SGD from keras.utils import np_utils from PIL import Image import numpy as np from sklearn.utils import shuffle from sklearn.cross_validation import train_test_split import theano import os import glob …

3
パンダのカテゴリカル列を一括変換する(ワンホットエンコーディングではない)
私は大量のカテゴリー列を含むpandasデータフレームを持っています。これをscikit-learnの決定木で使用する予定です。それらを数値に変換する必要があります(1つのホットベクトルではありません)。scikit-learnのLabelEncoderでそれを行うことができます。問題は、それらが多すぎて手動で変換したくないことです。 このプロセスを自動化する簡単な方法は何でしょうか。

3
不均衡データのTensorflow Adjusting Cost Function
非常に不均衡なデータの分類問題があります。過剰サンプリングと過少サンプリング、および過小評価されているカテゴリカル出力のコストを変更すると、より適切なフィッティングにつながることを読んだことがあります。これが行われる前は、テンソルフローは各入力を大多数のグループとして分類します(そして、90%を超える精度、つまり、意味がありません)。 各グループの逆パーセンテージの対数が、私が試した中で最高の乗数になったことに気づきました。コスト関数のより標準的な操作はありますか?これは正しく実装されていますか? from collections import Counter counts = Counter(category_train) weightsArray =[] for i in range(n_classes): weightsArray.append(math.log(category_train.shape[0]/max(counts[i],1))+1) class_weight = tf.constant(weightsArray) weighted_logits = tf.mul(pred, class_weight) cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(weighted_logits, y)) optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

3
xgboostのおおよその分割点の提案を理解するのに助けが必要
バックグラウンド: でxgboost反復は、ツリー収まるようにしようとすべての上に以下の目的最小限の例:f t ntttftftf_tnnn ∑i=1n[gift(xi)+12hif2t(xi)]∑i=1n[gift(xi)+12hift2(xi)]\sum_{i=1}^n[g_if_t(x_i) + \frac{1}{2}h_if_t^2(x_i)] ここで、は、以前の最良の推定(反復)に対する1次および2次導関数です。、Y、T - 1gi,higi,hig_i, h_iy^y^\hat{y}t−1t−1t-1 gi=dy^l(yi,y^)gi=dy^l(yi,y^)g_i=d_{\hat{y}}l(y_i, \hat{y}) hi=d2y^l(yi,y^)hi=dy^2l(yi,y^)h_i=d^2_{\hat{y}}l(y_i, \hat{y}) そしては損失関数です。lll 質問(最終的に): を構築し、特定のスプリットの特定の特徴を検討する場合、次のヒューリスティックを使用して一部のスプリット候補のみを評価します。すべての例をでソートし、ソートされたリストを渡して、2次導関数を合計します。合計がより大きく変化する場合にのみ、分割候補を考慮します。何故ですか??? k x k h i ϵftftf_tkkkxkxkx_khihih_iϵϵ\epsilon 彼らが与える説明は私を逃れています: 彼らは、以前の方程式を次のように書き換えることができると主張している。 ∑i=1n12hi[ft(xi)−gi/hi]2+constant∑i=1n12hi[ft(xi)−gi/hi]2+constant\sum_{i=1}^n\frac{1}{2}h_i[f_t(x_i) - g_i/h_i]^2 + constant そして、代数をたどることができません-なぜそれが等しいのか示していただけますか? そして、彼らは「これはラベルと重みによる正確に重み付けされた2乗損失である」と主張します-私は同意する声明ですが、それが彼らが使用している分割候補アルゴリズムとどのように関連するのか理解していません...h igi/higi/higi/hihihih_i これがこのフォーラムには長すぎる場合は、ありがとうございます。
12 xgboost  gbm 

2
音認識のためのスペクトログラムによるディープラーニング
スペクトログラムを使用して音(たとえば、動物の音)を分類する可能性を検討していました。アイデアは、深い畳み込みニューラルネットワークを使用して、スペクトログラムのセグメントを認識し、1つ(または複数)のクラスラベルを出力することです。これは新しいアイデアではありません(たとえば、クジラの音の分類や音楽スタイルの認識を参照)。 私が直面している問題は、さまざまな長さのサウンドファイルがあり、したがってさまざまなサイズのスペクトログラムがあることです。これまでのところ、私が見たすべてのアプローチでは固定サイズのサウンドサンプルを使用していますが、サウンドファイルが10秒または2分の長さになる可能性があるため、これを行うことはできません。 たとえば、最初は鳥の音、最後はカエルの音(出力は "Bird、Frog"になります)。私の現在の解決策は、ニューラルネットワークに一時的なコンポーネントを追加することです(リカレントニューラルネットワークをさらに作成する)が、今のところそれを単純に保ちたいと思います。アイデア、リンク、チュートリアルなど...?

3
カテゴリカルデータと数値データを動的に区別するにはどうすればよいですか?
列やデータ型に関係なく、データのファイルを取り込むプロジェクトに取り組んでいる人を知っています。タスクは、任意の数の列とさまざまなデータ型を含むファイルを取得し、数値データの要約統計を出力することです。 ただし、特定の数値ベースのデータにデータ型を動的に割り当てる方法に確信が持てません。例えば: CITY Albuquerque Boston Chicago これは明らかに数値データではなく、テキストとして保存されます。しかしながら、 ZIP 80221 60653 25525 カテゴリーとして明確にマークされていません。彼のソフトウェアは郵便番号を数値として割り当て、要約統計を出力しますが、そのようなデータには意味がありません。 私たちが持っていたいくつかのアイデアは: 列がすべて整数の場合は、カテゴリとしてラベルを付けます。これは明らかに機能しませんが、アイデアでした。 列に含まれる一意の値がn個未満で数値の場合は、カテゴリにラベルを付けます。これはもっと近いかもしれませんが、それでも数値データが抜け落ちる問題があるかもしれません。 実際にカテゴリでなければならない一般的な数値データのリストを維持し、列ヘッダーをこのリストと比較して一致するかどうかを確認します。たとえば、「ZIP」が含まれているものはすべてカテゴリです。 私の直感は、数値データをカテゴリーまたは数値として正確に割り当てる方法はないが、提案を望んでいたと私に伝えています。あなたが持っているどんな洞察も大歓迎です。

1
scikit-learnを使用したランダムフォレストでの機能重要度を使用した機能選択
scikit-learnを使用して、ランダムフォレストの機能の重要性をプロットしました。ランダムフォレストを使用して予測を改善するには、プロット情報を使用してフィーチャを削除するにはどうすればよいですか?つまり、プロット情報に基づいて、フィーチャが無用であるか、ランダムフォレストのパフォーマンスの低下をさらに悪化させるかを特定する方法を教えてください。プロットは属性に基づいておりfeature_importances_、分類子を使用していsklearn.ensemble.RandomForestClassifierます。 機能選択には他にも手法があることは承知していますが、この質問では機能の使い方に焦点を当てたいと思いますfeature_importances_。 そのような特徴重要度プロットの例:

4
ウェブ上の大きなデータセットをAWS S3に直接ダウンロードする
大規模なデータセットをURLからAmazon S3にインポートできるかどうか誰かが知っていますか? 基本的に、私は巨大なファイルをダウンロードして、それをWebポータルからS3に再アップロードしないようにします。ダウンロードURLをS3に提供し、ファイルシステムにダウンロードされるのを待ちたいだけです。簡単なことのように思えますが、ドキュメントが見つかりません。
12 dataset  aws 

3
NLTKのNERに関するヘルプ
Pythonを使用してしばらくの間NLTKで作業しています。私が直面している問題は、私のカスタムデータを使用してNLTKでNERをトレーニングするのに役立つものがないということです。彼らはMaxEntを使用し、ACEコーパスでトレーニングしました。私はウェブでたくさん検索しましたが、NLTKのNERのトレーニングに使用できる方法を見つけることができませんでした。 誰かがリンク/記事/ブログなどを提供してくれれば、NLTKのNERのトレーニングで使用されるトレーニングデータセットフォーマットに誘導できるので、その特定のフォーマットでデータセットを準備できます。そして、私が自分のデータのためにNLTKのNERをトレーニングするのに役立つリンク/記事/ブログなどに誘導された場合。 これは広く検索されており、回答が最も少ない質問です。NERと連携する将来の誰かにとって役立つかもしれません。

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