Python 卡方检验演算
生活随笔
收集整理的這篇文章主要介紹了
Python 卡方检验演算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Python 卡方檢驗演算
1 聲明
本文的數(shù)據(jù)來自網(wǎng)絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術(shù)交流,如有冒犯之處請聯(lián)系博主及時處理。
2 卡方檢驗簡介
卡方統(tǒng)計檢驗用于檢測兩個分類向量的獨立性,也就是說該統(tǒng)計量是一個用于統(tǒng)計分類特征的每個類別中觀測到的數(shù)量與我們所期望(特征與目標向量獨立或者無關(guān)時)之間的差異。
其中O代表觀測或者樣本的值,i代表第i個分類,E代表期望值。
3 卡方檢驗代碼示例
from sklearn.feature_selection import SelectKBest from sklearn.preprocessing import LabelBinarizer import sklearn.feature_selection as selection import scipy #Step1 定義數(shù)據(jù)X和y X = np.array([3.4, 3.4, 3. , 2.8, 2.7, 2.9, 3.3, 3. , 3.8, 2.5]) y = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2, 2]) #Step2 二值化數(shù)據(jù) y = LabelBinarizer().fit_transform(y) #Step3 點積,實際得到的是y的每個分類的匯總和 observed = y.T.dot(X) #Step4 reshape成1行未知列,對所有X求和,記作Total feature_count = X.sum(axis=0).reshape(1, -1) #計算每個分類的占比,這里只要對二值化的數(shù)據(jù)求均值即可。 class_prob = y.mean(axis=0).reshape(1, -1) #Step5 計算每個分類對應的期望值,即每個y分類的占比乘以Total expected = np.dot(class_prob.T, feature_count) #Step6 計算卡方,方法見下: chi2 = ((observed.reshape(-1,1) - expected) ** 2 / expected).sum(axis=0)#power((9.8-9.24),2)/9.24 #+power((8.4-9.24),2)/9.24 #+power((12.6-12.32),2)/12.32 print("卡方值\tP值") # p值 p = scipy.special.chdtrc(3 - 1, chi2) print(chi2,p)# 對比SelectKBest,chi2 s = SelectKBest(selection.chi2, k=1) s.fit(X.reshape(-1,1),y) print(s.scores_, s.pvalues_)4 總結(jié)
無
總結(jié)
以上是生活随笔為你收集整理的Python 卡方检验演算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疫情之后养生汤宣传文案?
- 下一篇: 浙冮安吉哪有菜种子买