問題タブ [logistic-regression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R でのビッグデータの読み取りとロジスティック回帰
状況: 1GB の CSV ファイル、100000 行、4000 個の独立数値変数、1 個の従属変数。16GB メモリを搭載した Windows Citrix サーバー上の R。
問題: 2 時間かかりました。すること:
glm プロセスがクラッシュし、プログラムが応答しなくなり、タスク マネージャーでシャットダウンする必要があります。
r - ロジスティック回帰のリストから係数のすべての標準誤差を抽出します
ロジスティック回帰モデルのリストから標準誤差を抽出したいと思います。
これはロジスティック回帰関数であり、このように設計されているため、一度に複数の分析を実行できます。
データフレームldataの変数のサブセットで実行します。
次のように係数を抽出できます。
しかし、係数の標準誤差を抽出するにはどうすればよいですか?str(glmkort)で見つからないようですが?
これがAGEのstr(glmkort)で、標準エラーを探しています。
これが私が例に使用したデータです。私はこの質問の目的のためにそれを短縮しました:
scikit-learn - sklearn LogisticRegression は csr_matrix を受け入れません
私は初心者であり、De Pauw と Wagacha (1998) の方法 (基本的には文字 n グラムの maxent) に従って語彙の単語を分類する必要があります。データは非常に大きい (500,000 エントリと数百万の n-gram)。そのため、サンプルを疎行列としてロードする必要があります。しかし、私は問題に遭遇しました。
sklearn.linear_model.LogisticRegression().fit(X,y)
scipy.sparse.csr.csr_matrix トレーニング ベクトルを受け入れないと述べています。このエラーが発生しました
次のスクリプトの場合:
r - レート集計行を長いバイナリ応答行にエレガントに変換しますか?
背景: 2x2 の要素 (前景の黒と背景の白、オフカラーと通常の色) を使用して、簡単な A/B テストを実行しています。Analyticsは、4 つの条件のそれぞれのヒット数と、それらが「変換されたレート」を報告します。 ' (ページで少なくとも 40 秒を費やすと定義するバイナリ変数)。少し編集して素敵な R データフレームを取得するのは簡単です。
当然のことながら、次のようなロジスティック回帰を見たいと思いますRate ~ Black * White
が、Rglm
は 2046 行のデータフレームを必要としており、それぞれが aTRUE
またはFALSE
コンバージョン値と および の値をBlack
報告していますWhite
。これは...もう少しトリッキーです。私はグーグルで検索してSOをチェックしましたが、不測の事態の数のテーブルをデータフレームに変換する方法についていくつかの不格好なコードを見つけましたが、パーセンテージ/レートについては何も見つかりませんでした。
多くの問題の後、rate * n
関連する条件値と結果True
を使用してデータフレームを繰り返し、 for と result を除いて同じことを(1 - rate) * n
行い、False
8 つのデータフレームすべてをつなぎ合わせる 4 つの条件のループを思いつきました。 1 つの巨大なデータフレームに:
結果のデータフレームは正しくground
見えます:
同様に、ロジスティック回帰は正気の答えを吐き出します。
私の質問は、Analytics のレート データをglm
入力に変換する、ひどいループよりも洗練された方法はありますか?
matlab - 結果について混乱しているMatlabのロジスティック回帰
オーディオ ファイルから作成された 2 つのデータセットで、Matlab でロジスティック回帰をテストしています。
最初のセットは、各ファイルのベクトルを抽出することによって wavread を介して作成されます。セットは 834 x 48116 のマトリックスです。各トレーニング例は、wav の周波数の 48116 ベクトルです。
2 番目のセットは、母音の 3 つのフォルマントの周波数を抽出することによって作成されます。ここで、各フォルマント (特徴) には独自の周波数範囲があります (たとえば、F1 範囲は 500-1500Hz、F2 範囲は 1500-2000Hz など)。各トレーニング例は、wav のフォルマントの 3-ベクトルです。
私は次のようにアルゴリズムを実装しています:
コスト関数と勾配:
ここで、X はデータセット、y は 8 つのクラスの出力行列です。
分類子:
ここで、num_labels = 8、ラムダ (正則化) は 0.1 です。
最初のセットでは MaxIter = 50 で、最大 99.8% の分類精度が得られます。
2 番目のセットで MaxIter=50 の場合、精度は低くなります - 62.589928
パフォーマンスを改善するために MaxIter をより大きな値に増やすことを考えましたが、途方もない量の反復でも、結果は 66.546763 より高くなりません。正則化値 (ラムダ) を変更しても、結果に良い影響を与えるようには見えません。
何が問題なのですか?私は機械学習が初めてで、この劇的な違いの原因を正確に把握できないようです。私にとって明らかに際立っている唯一の理由は、最初のセットの例が非常に長いベクトルであるため、より多くの機能があり、2 番目のセットの例が短い 3-ベクトルで表されていることです。このデータは、2 番目のセットを分類するのに十分ではありませんか? もしそうなら、2番目のセットでより良い分類結果を得るために何ができるでしょうか?
python - Scikit Learn: ロジスティック回帰モデルの係数: 明確化
自分で予測確率を生成できるように、ロジスティック回帰係数を返す方法を知る必要があります。
私のコードは次のようになります。
lr.coeff_ の値は典型的なロジスティック回帰に従うと想定していたので、次のような予測確率を返すことができました。
しかし、これは適切な定式化ではありません。Scikit Learn LogisticRegression から予測確率を生成するための適切な形式を持っている人はいますか? ありがとう!
python - scikit-learn の LogisticRegression の GridSearchCV
交差検証グリッド パラメーター検索を使用して、scikit-learn でロジスティック回帰関数を最適化しようとしていますが、実装できないようです。
Logistic Regression は get_params() を実装していないと書かれていますが、ドキュメントには実装されていると書かれています。グラウンド トゥルースでこの関数を最適化するにはどうすればよいですか?
machine-learning - Weka の SimpleLogistic 関数は正規化を使用しますか?
Weka の Simple Logistic Function が正則化を使用しているかどうか疑問に思っています。
ドキュメントにはそれについての言及はありませんが、よくわかりません。誰でもこれを確認できますか?
*線形ロジスティック回帰モデルを構築するための分類子。単純な回帰関数を基本学習器として持つ LogitBoost は、ロジスティック モデルの適合に使用されます。実行する LogitBoost 反復の最適な数は相互検証され、自動属性選択につながります。詳細については、次を参照してください。
Niels Landwehr、Mark Hall、Eibe Frank (2005)。ロジスティック モデル ツリー。Marc Sumner、Eibe Frank、Mark Hall: Logistic Model Tree Induction の高速化。: データベースにおける知識発見の原則と実践に関する第 9 回ヨーロッパ会議、675-683、2005 年。
オプション
debug -- true に設定すると、分類子は追加情報をコンソールに出力する場合があります。useCrossValidation -- LogitBoost 反復回数をクロス検証するか、トレーニング セットの停止基準を使用するかを設定します。設定されていない場合 (固定の反復回数が指定されていない場合)、トレーニング セットのエラー (誤分類エラーまたは errorOnProbabilities に応じた確率のエラー) を最小化する LogitBoost 反復回数が使用されます。
errorOnProbabilities -- LogitBoost 反復の最適な回数を決定する際に、確率のエラーをエラー測定として使用します。設定されている場合、二乗平均平方根誤差を最小化する LogitBoost 反復回数が選択されます (useCrossValidation に応じて、トレーニング セットまたはクロス検証で)。weightTrimBeta -- LogitBoost で重みのトリミングに使用されるベータ値を設定します。次の反復では、前の反復からの重量の (1 - ベータ)% を運ぶインスタンスのみが使用されます。ウェイト トリミングを行わない場合は 0 に設定します。デフォルト値は 0 です。 numBoostingIterations -- LogitBoost の固定反復回数を設定します。>= 0 の場合、実行する LogitBoost 反復回数を設定します。< 0 の場合、数値がクロス検証されるか、トレーニング セットの停止基準が使用されます (useCrossValidation の値に応じて)。
useAIC -- AIC は、LogitBoost 反復をいつ停止するかを決定するために使用されます (クロス検証またはトレーニング エラーの代わりに)。
heuristicStop -- heuristicStop > 0 の場合、LogitBoost 反復回数の相互検証中に貪欲に停止するためのヒューリスティックが有効になります。これは、最後の heuristicStop 反復で新しいエラーの最小値に達しなかった場合、LogitBoost が停止されることを意味します。このヒューリスティックを使用することをお勧めします。これにより、特に小さなデータセットで大幅な高速化が得られます。デフォルト値は 50 です。
maxBoostingIterations -- LogitBoost の反復の最大回数を設定します。デフォルト値は 500 です。非常に小さい/大きいデータセットの場合は、より低い/より高い値が望ましい場合があります。*
weka - Weka ロジスティック回帰の出力を解釈する方法は?
Weka ライブラリの weka.classifiers.functions.Logistic によって生成されたロジスティック回帰の結果の解釈を手伝ってください。
Weka の例の数値データを使用します。
ロジスティック回帰モデルを作成するには、次のコマンドを使用します: java -cp $WEKA_INS/weka.jar weka.classifiers.functions.Logistic -t $WEKA_INS/data/weather.numeric.arff -T $WEKA_INS/data/weather.numeric.arff - d ./weather.numeric.model.arff
ここで、3 つの引数の意味は次のとおりです。
上記のコマンドを実行すると、次の出力が生成されます。
質問:
1) レポートの最初のセクション:
1.1) 「係数」は実際には各属性に適用される重みであり、それらを加算して「はい」に等しいクラス属性「再生」の値を生成することを理解していますか?
2) レポートの 2 番目のセクション:
2.1) 「オッズ比」とはどういう意味ですか? 2.2) それらはすべて「yes」に等しいクラス属性「play」にも関連していますか? 2.3) 「outlook=overcast」の値が「outlook=sunny」の値よりも大きいのはなぜですか?
3)
3.1) Confusion Matrix の意味は何ですか?
助けてくれてどうもありがとう!