詳細共線性データ処理:Pythonの前処理データ

今日の小さな前処理Pythonのデータ共有するすべての人のために:詳細なデータは、線形処理した、良い基準値を、我々は手助けをしたいです。、是非、ご覧一緒に小さなシリーズをフォロー
総線形何ですか。

共線は、入力引数との間の線形相関の高い程度の存在を指します。共線性が大幅に削減回帰モデルの安定性と精度を引き起こす可能性があります。また、あまりにも多くの無関係な次元の計算は時間の無駄です

共線的な原因:

理由共線変数が表示されます:

データサンプルは、実際にはデータモデリングのためのデータの不足の影響を反映した共線チャンスの存在下で、その結果、十分ではありません、共線は、の影響の一部でしかありません

通常の時間減少傾向に反対しているように春祭りの間、ネットワークの販売および販売などの時間一緒に、または進化反対の傾向を与えるために多くの変数があります。

そこに一定の関係が行くの複数の変数がありますが、一般的な変数間で同じ傾向が、時間のポイントは、まさにこのような広告宣伝費と販売の間のような矛盾を、起こる、ブランド広告は、多くの場合、特定の後の最初の暴露との情報のプッシュの広い範囲であり、伝搬時間後に、それが売り上げに反映するだろう。

複数の変数間の線形関係があります。Yは、訪問者の数を表し、例えば、Xディスプレイ広告費用で表される、2つの間の関係は、おそらく、Y = 2 * X + Bすべきです

共線性をテストする方法:

点検共線:

寛容(トレランス):残存率が図決意の係数を用いて得られたサイズの減少から得られる他の変数への各独立変数従属変数回帰モデルの許容範囲です。小さな独立変数の許容値は、他の独立変数の間の共線が存在してもよいです。

VIF膨張係数は、通常、10境界決意として、共線形問題の大きな値より明白、分散トレランスの逆数です。場合10 VIF <、多重共線性は存在しない; 10 <= VIF <100は、強い多重共あり;場合重度のVIF> = 100、多重共。

特性値(固有値):この方法は、複数の値の特性寸法が0に等しい場合に、より深刻な共線性があるかもしれない、実際に独立変数ショット成分分析です。

相関係数:相関係数R>は強い相関がある場合には可能性0.8

共線を処理する方法:

総線形プロセス:

サンプルサイズを大きく:サンプルサイズを大きくすると共直線現象が時折不足を解消することができ、このアプローチの前提に現れるが可能優先事項であることをデータの量を躊躇

リッジ回帰(リッジ回帰)は:実際に変更最小二乗推定です。不偏は、より実用的な精度低下、より信頼性の高い回帰係数のコストで、情報の一部の損失に、最小二乗法によって放棄しました。したがって、より一般的なアプリケーションを使用し、強力なリッジ回帰回帰の共線性があります。

ステップワイズ回帰(ステップワイズ回帰):毎回セルフ変数統計的検定の導入、もともと後の変数の導入による導入変数はもはや重要になっていない場合は、その後、徐々に、他の変数、すべての変数の回帰係数の同時テストを導入、限り、それは削除され、徐々にほとんどの回帰式。

主成分回帰(主成分回帰)、主成分分析、主成分は元の変数の線形結合であるか、いくつかの主要成分に元のモデルに関与する変数は、主成分に基づいて回帰分析を行い、また、希望私たちは、重要なデータの特性を失うことなく、共線性を回避することができます。

手動での削除:人間の経験の組み合わせ、除外の引数が、オペレータの運用能力に、高い要求を経験します。

方法の一部のためのPythonコード

import numpy as np
import pandas as pd
from sklearn.linear_model import Ridge
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression
 
# 导入数据
df = pd.read_csv('https://raw.githubusercontent.com/ffzs/dataset/master/boston/train.csv')
 
# 切分自变量
X = df.iloc[:, 1:-1].values
 
# 切分预测变量
y = df.iloc[:, [-1]].values
 
# 使用岭回归处理
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
n_alphas = 20
alphas = np.logspace(-1,4,num=n_alphas)
coefs = []
for a in alphas:
  ridge = Ridge(alpha=a, fit_intercept=False)
  ridge.fit(X, y)
  coefs.append(ridge.coef_[0])
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale('log')
handles, labels = ax.get_legend_handles_labels()
plt.legend(labels=df.columns[1:-1])
plt.xlabel('alpha')
plt.ylabel('weights')
plt.axis('tight')
plt.show()

NOxはわずかに変動性。

# 主成分回归进行回归分析
pca_model = PCA()
data_pca = pca_model.fit_transform(X)
 
# 得到所有主成分方差
ratio_cumsum = np.cumsum(pca_model.explained_variance_ratio_)
# 获取方差占比超过0.8的索引值
rule_index = np.where(ratio_cumsum > 0.9)
# 获取最小的索引值
min_index = rule_index[0][0]
# 根据最小索引值提取主成分
data_pca_result = data_pca[:, :min_index+1]
# 建立回归模型
model_liner = LinearRegression()
# 训练模型
model_liner.fit(data_pca_result, y)
print(model_liner.coef_)
#[[-0.02430516 -0.01404814]]

前のpython上記のこのデータ:詳細なデータが線形処理はどのくらいの公共機関のかなりの数を推奨する口の中の最後の言葉[プログラマ]上記のコンテンツの全ての内容全体を共有するために小さなシリーズですた、が多いです古いタイマー学習

スキルは、経験、面接スキル、職場体験や他のシェアを学んで、より慎重に、実際のプロジェクトのゼロベースの入門情報、情報を準備しました

時限プログラマPythonは日常の技術を説明している方法は、学習と細部への注意を払う必要性へのいくつかを共有しますここに画像を挿入説明

公開された49元の記事 ウォンの賞賛8 ビュー40000 +

おすすめ

転載: blog.csdn.net/chengxun02/article/details/105082278