タグ付けされた質問 「python」

プログラミング言語Pythonに関連するデータサイエンスの質問に使用します。一般的なコーディングの質問(-> stackoverflow)は対象としていません。


1
ケラスとLSTMを使用したマルチステップ先予測の複数の出力
私はディープラーニングとLSTM(ケラを使用)を初めて使用します。私は、マルチステップ先の時系列予測を解決しようとしています。A、B、Cの3つの時系列があり、Cの値を予測したいと思います。LSTMをトレーニングして、データポイントを3ステップ戻し、将来の3ステップを予測しています。入力データは次のようになります。 X = [[[A0, B0, C0],[A1, B1, C1],[A2, B2, C2]],[[ ...]]] 寸法:(1000, 3, 3)。出力は次のとおりです。 y = [[C3, C4, C5],[C4, C5, C6],...] 寸法:(1000, 3)。 1つの非表示レイヤー(50ニューロン)を持つ単純なLSTMを使用しています。私はケラスを使ってLSTMを次のように設定しました: n_features = 3 neurons = 50 ahead = 3 model = Sequential() model.add(LSTM(input_dim=n_features, output_dim=neurons)) model.add(Dropout(.2)) model.add(Dense(input_dim=neurons, output_dim=ahead)) model.add(Activation('linear')) model.compile(loss='mae', optimizer='adam') model.fit(X, y, epochs=50) このモデルは正常に動作します。ここで、(同じ入力を使用して)Bの値も予測したいと思います。したがって、複数の機能を持つトレーニングの場合と同じように、出力を再形成しようとしました。 y = …

2
Qラーニングが分岐するのはなぜですか?
私のQラーニングアルゴリズムの状態値は無限に発散し続けます。つまり、私の重みも発散しています。値のマッピングにはニューラルネットワークを使用しています。 私はもう試した: 「報酬+割引*アクションの最大値」のクリッピング(最大/最小は50 / -50に設定) 低い学習率の設定(0.00001と私は、重みを更新するために従来のバックプロパゲーションを使用しています) 報酬の価値を下げる 探査率を上げる 入力を1〜100に正規化します(以前は0〜1でした) 割引率を変更する ニューラルネットワークのレイヤーを減らす(検証のためだけ) Qラーニングは非線形入力で発散することが知られていると聞きましたが、重みの発散を止めようと試みることができる他に何かありますか? 2017年8月14日の更新#1: リクエストがあったため、現在行っていることについて具体的な詳細を追加することにしました。 私は現在、エージェントにシューティングゲームのトップダウンビューで戦う方法を学ばせようとしています。対戦相手は確率的に動くシンプルなボットです。 各キャラクターには、各ターンで選択できる9つのアクションがあります。 上に移動 下に移動 左に移動 右に動く 弾丸を上向きに発射する 弾丸を撃ち落とす 左に弾丸を撃ちます 右に弾丸を撃ちます 何もしない 報酬は次のとおりです。 エージェントがボットを弾丸で打った場合、+ 100(さまざまな値を試してみました) ボットが発射した弾丸にエージェントが当たった場合、-50(ここでも、さまざまな値を試しました) 弾丸を発射できないときにエージェントが弾丸を発射しようとした場合(例:エージェントが弾丸を発射した直後など)-25(必須ではありませんが、エージェントをより効率的にしたいと思いました) ボットがアリーナから出ようとした場合は-20(あまり必要ではありませんが、エージェントをより効率的にしたいと思いました) ニューラルネットワークの入力は次のとおりです。 0から100に正規化されたX軸上のエージェントとボット間の距離 0から100に正規化されたY軸上のエージェントとボット間の距離 エージェントのxとyの位置 ボットのxとyの位置 ボットの弾丸の位置。ボットが弾丸を発射しなかった場合、パラメーターはボットのx位置とy位置に設定されます。 私も入力をいじっています。エージェントの位置(距離ではなく実際の位置)のx値やボットの弾丸の位置などの新しい機能を追加してみました。それらのどれもうまくいきませんでした。 これがコードです: from pygame import * from pygame.locals import * import sys from …

2
評価ではなく購入履歴に基づく推奨システム
保険業界向けに最適化されたレコメンダーシステムのオプションを検討しています。 i)製品保有 ii)ユーザーの特性(セグメント、年齢、裕福さなど)。 強調したい a)利用可能な製品評価がないため、協調フィルタリングはオプションではありません b)推奨製品は、すでに購入された製品と類似している必要はありません。したがって、アイテム間の推奨はおそらく関連性がありません。 自動車保険に加入している人は、自宅や旅行などではなく、別のモーター製品を購入する可能性が低いため、保険では、すでに購入したものと同様の製品を推奨することはめったにありません。 そのため、購入履歴や人口統計に基づいて、ユーザー間の類似性に関する推奨事項を作成します 理想的には、それをRで、できればPythonで実装できるようにしたいと考えています。ヘルプと提案をありがとう!

2
Coursera ML-最適化アルゴリズムの選択は、マルチクラスロジスティック回帰の精度に影響しますか?
最近、Pythonを使用したCourseraでのAndrew Ngの機械学習の演習3を完了しました。 演習のパート1.4から1.4.1を最初に完了すると、トレーニング済みモデルが予想される94.9%に一致する精度を持っていることを確認するのが困難になりました。デバッグして、コストと勾配関数にバグがないこと、および予測子コードが正しく機能していることを確認した後でも、精度は90.3%しかありませんでした。で共役勾配(CG)アルゴリズムを使用していましたscipy.optimize.minimize。 好奇心から、別のアルゴリズムを試すことにし、ブロイデン-フレッチャー-ゴールドファーブ-シャノン(BFGS)を使用しました。驚いたことに、精度は大幅に96.5%に向上し、予想を上回りました。これら2つの異なる結果のCGとBFGSの比較は、ノートブックのヘッダー「最適化アルゴリズムの違いによる精度の違い」の下で確認できます。 最適化アルゴリズムの選択が異なるため、この精度の違いの理由はありますか?はいの場合、誰かが理由を説明できますか? また、これを引き起こしている関数にバグがないことを確認するためだけにコードをレビューしていただければ幸いです。 ありがとうございました。 編集:ここで、読者にJupyterノートブックへのリンクを紹介するのではなく、このページで行うコメントのリクエストに、質問に含まれるコードを追加しました。 モデルのコスト関数: def sigmoid(z): return 1 / (1 + np.exp(-z)) def compute_cost_regularized(theta, X, y, lda): reg =lda/(2*len(y)) * np.sum(theta[1:]**2) return 1/len(y) * np.sum(-y @ np.log(sigmoid(X@theta)) - (1-y) @ np.log(1-sigmoid(X@theta))) + reg def compute_gradient_regularized(theta, X, y, lda): gradient = np.zeros(len(theta)) XT = X.T beta …

1
OCRのトレーニングデータを生成する方法
ライセンスプレート(インドネシアのライセンスプレート)を認識するための光学式文字認識システムを構築しようとしていますが、残念ながら利用可能なトレーニングセットはありませんが、フォントを見つけました。 (ガウスぼかし、ボックスぼかしなど)Pythonを使用しますが、実際のデータとは異なります。フォントは次のようになります。 そして、私はこのように見える個々の手紙を生成したいです: 上の画像のようなトレーニングデータを生成する方法はありますか?ありがとうございました

1
遺伝的アルゴリズムの最小化の簡単な例
Pythonの遺伝的アルゴリズムアプローチを使用して関数がその最小値を達成するポイントを見つける方法の例を探していました。DEAPのドキュメントを確認しましたが、その例を理解するのは非常に困難でした。例えば: def function(x,y): return x*y+3*x-x**2 xとyの両方の初期ランダム値(同じ次元からのものではない)を供給することができる遺伝的アルゴリズムを作成する方法についての参考文献を探しています。遺伝的アルゴリズムの作成と使用の経験を持つ誰かが私にこれについていくつかのガイダンスを提供できますか?


1
最適な解から遠く離れている勾配が非常に小さい場合、PythonでMLE推定量を数値的に推定する方法は?
私は、平均と分散の両方が独立変数の線形関数として定義されている正規分布を使用してデータセットをモデル化する方法を調査しています。 N〜(f(x)、g(x))のようなもの。 私はこのようなランダムなサンプルを生成します: def draw(x): return norm(5 * x + 2, 3 *x + 4).rvs(1)[0] だから、私の分布のパラメーターとして5、2、4を取得したいと思います。 私はサンプルを生成します: smp = np.zeros((100,2)) for i in range(0, len(smp)): smp[i][0] = i smp[i][1] = draw(i) 尤度関数は次のとおりです。 def lh(p): p_loc_b0 = p[0] p_loc_b1 = p[1] p_scl_b0 = p[2] p_scl_b1 = p[3] l = 1 for …

2
シンプルなKaggleタスクでsklearnとpandasを統合するのに苦労しています
私はsklearn_pandasモジュールを使用してパンダで行う作業を拡張し、機械学習につま先を浸そうとしていますが、修正方法が本当にわからないエラーで苦労しています。 Kaggleで次のデータセットを調べていました。 これは基本的に、浮動小数点値を持つヘッダーのないテーブル(1000行、40の機能)です。 import pandas as pdfrom sklearn import neighbors from sklearn_pandas import DataFrameMapper, cross_val_score path_train ="../kaggle/scikitlearn/train.csv" path_labels ="../kaggle/scikitlearn/trainLabels.csv" path_test = "../kaggle/scikitlearn/test.csv" train = pd.read_csv(path_train, header=None) labels = pd.read_csv(path_labels, header=None) test = pd.read_csv(path_test, header=None) mapper_train = DataFrameMapper([(list(train.columns),neighbors.KNeighborsClassifier(n_neighbors=3))]) mapper_train 出力: DataFrameMapper(features=[([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.