私は(私は概要を必要とする)statsmodelsを使用してロジスティック回帰を実装しようとしていますし、私はこのエラーを取得:ロジスティック回帰は
LinAlgError: Singular matrix
私のDFは数値と相関しているが、私は非を削除しました - 数値関数と定数関数。 私は正規の回帰だけでなく、l1のペナルティ(l2は利用できません)を実装しようとしました。
私は、行列のランクをチェックしようとしたと、このプリントを得た:
print(len(df.columns)) -> 156
print(np.linalg.matrix_rank(df.values)) -> 151
どのように私は問題があると、なぜその機能を知っているのですか?
私のコード:
logit = sm.Logit(y,X)
result = logit.fit_regularized(trim_mode='auto', alpha=0,maxiter=150)
print(result.summary())
更新:
相関の高い機能を除去した後、私は得る:
len(df.columns) = np.linalg.matrix_rank(df.values)
が、それでも同じエラー。 (たとえ私が低い相関閾値を設定したとしても)。
ソルバーも変更しようとしました。
df.corr()を試してください。これは、データフレーム内の数値列間の相関行列を返します。そこから、あなたの特徴のうちの2つが正確に相関しているかどうかを確認することができます。 –
@Johannes Wachs、私は相関した特徴を削除し、それは機能します。 tnx。 – anna
https://stackoverflow.com/a/13313828/333700 QRを使用してすべての同一線または線形独立の列を見つける方法について – user333700