今天使用sklearn進行特徵選擇的時候出現乙個錯誤:
valueerror: input x must be non-negative.找了stackoverflow,原來是卡方驗證不能用於負值。
卡方分布是通過統計當前變數的頻次,和目標變數的頻次來分析當前變數時候有關係來衡量當前變數的重要程度,所以用來做特徵選擇。這裡細緻講解,請看參考部落格第三個。
頻次當然不是負數,所以不能輸入負數值。
解決辦法:
1.把輸入變化到0-1.
sklearn.preprocessing.
minmaxscaler()
.fit_transform
(your_training_features_here)
2.用其他的特徵選擇方法。
klearn.feature_selection.f_classif
計算 anova f-value
sklearn.feature_selection.mutual_info_classif
計算 mutual information
參考部落格:
1.stackoverflow:
2.3.推薦:統計學——卡方檢驗和卡方分布
4.sklearn特徵選擇doc:
卡方分布 卡方分布與擬合優度的卡方檢驗是什麼關係?
在分類資料擬合優度的 該統計量 服從 的 分布。其中,為某分類實際頻數,為零假設中的期望頻數,為分類類別的數量。對於分類資料的擬合優度 檢驗,很多統計教科書介紹完上面這些就結束了。但相信初學者,尤其是非統計專業的初學者會和我一樣,都存在乙個疑問,式1中的檢驗統計量 為什麼會服從 分布呢?這個疑問非常...
統計學 卡方檢驗和卡方分布
感冒人數 未感冒人數 合計感冒率 喝牛奶組 4396 13930.94 不喝牛奶組 2884 11225.00 合計71 180251 28.29 感冒人數 未感冒人數 合計喝牛奶組 139 0.2829 139 1 0.2829 139不喝牛奶組 112 0.2829 112 1 0.2829 1...
連續分布 正態分佈 卡方分布 t分布 F分布
某一地區的人群生長環境相似,我們隨機選20個男性,量出他們的身高,近似地服從正態分佈。正態分佈,即高斯分布,是自然界最常見的資料分布了。用均值 標準差來確定乙個正態分佈概率密度圖。比如n 2,0.5 就是均值為 2,標準差為0.5的正態分佈。而n 0,1 稱為標準正態分佈。這裡給出r應用 假設當在居...