日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python评分卡建模-卡方分箱

發(fā)布時間:2025/3/21 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python评分卡建模-卡方分箱 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天主要給大家講講卡方分箱算法ChiMerge。先給大家介紹一下經(jīng)常被提到的卡方分布和卡方檢驗(yàn)是什么。

一、卡方分布

卡方分布(chi-square distribution, χ2-distribution)是概率統(tǒng)計(jì)里常用的一種概率分布,也是統(tǒng)計(jì)推斷里應(yīng)用最廣泛的概率分布之一,在假設(shè)檢驗(yàn)與置信區(qū)間的計(jì)算中經(jīng)常能見到卡方分布的身影。

卡方分布的定義如下:

若k個獨(dú)立的隨機(jī)變量Z1, Z2,..., Zk 滿足標(biāo)準(zhǔn)正態(tài)分布 N(0,1) , 則這k個隨機(jī)變量的平方和:

為服從自由度為k的卡方分布,記作:

或者記作

二、卡方檢驗(yàn)

χ2檢驗(yàn)是以χ2分布為基礎(chǔ)的一種假設(shè)檢驗(yàn)方法,主要用于分類變量之間的獨(dú)立性檢驗(yàn)。

其基本思想是根據(jù)樣本數(shù)據(jù)推斷總體的分布與期望分布是否有顯著性差異,或者推斷兩個分類變量是否相關(guān)或者獨(dú)立。

一般可以設(shè)原假設(shè)為 :觀察頻數(shù)與期望頻數(shù)沒有差異,或者兩個變量相互獨(dú)立不相關(guān)。

實(shí)際應(yīng)用中,我們先假設(shè)原假設(shè)成立,計(jì)算出卡方的值,卡方表示觀察值與理論值間的偏離程度。

卡方值的計(jì)算公式為:

其中A為實(shí)際頻數(shù),E為期望頻數(shù)。卡方值用于衡量實(shí)際值與理論值的差異程度,這也是卡方檢驗(yàn)的核心思想。

卡方值包含了以下兩個信息:

1.實(shí)際值與理論值偏差的絕對大小。 2.差異程度與理論值的相對大小。

上述計(jì)算的卡方值服從卡方分布。根據(jù)卡方分布,卡方統(tǒng)計(jì)量以及自由度,可以確定在原假設(shè)成立的情況下獲得當(dāng)前統(tǒng)計(jì)量以及更極端情況的概率p。如果p很小,說明觀察值與理論值的偏離程度大,應(yīng)該拒絕原假設(shè)。否則不能拒絕原假設(shè)。

三、卡方檢驗(yàn)實(shí)例

某醫(yī)院對某種病癥的患者使用了A,B兩種不同的療法,結(jié)果如表1,問兩種療法有無差別?

表1 兩種療法治療卵巢癌的療效比較

組別

有效

無效

合計(jì)

有效率(%)

A組

19

24

43

44.2

B組

34

10

44

77.3

合計(jì)

53

34

87

60.9

可以計(jì)算出各格內(nèi)的期望頻數(shù)。

第1行1列: 43×53/87=26.2

第1行2列: 43×34/87=16.8

第2行1列: 44×53/87=26.8

第2行2列: 4×34/87=17.2

先建立原假設(shè):A、B兩種療法沒有區(qū)別。根據(jù)卡方值的計(jì)算公式,計(jì)算:

算得卡方值=10.01。

得到卡方值以后,接下來需要查詢卡方分布表來判斷p值,從而做出接受或拒絕原假設(shè)的決定。

首先我們明確自由度的概念:自由度k=(行數(shù)-1)*(列數(shù)-1)。 這里k=1.然后看卡方分布的臨界概率表,我們可以用如下代碼生成:

import numpy as np

from scipy.stats import chi2

import pandas as pd

# chi square distribution

percents = [ 0.95, 0.90, 0.5,0.1, 0.05, 0.025, 0.01, 0.005]

df =pd.DataFrame(np.array([chi2.isf(percents, df=i) for i in range(1, 30)]))

df.columns = percents

df.index =df.index+1

pd.set_option('precision', 3)

df

查表自由度為1,p=0.05的卡方值為3.841,而此例卡方值10.01>3.841,因此 p < 0.05,說明原假設(shè)在0.05的顯著性水平下是可以拒絕的。也就是說,原假設(shè)不成立。

四、ChiMerge分箱算法

ChiMerge卡方分箱算法由Kerber于1992提出。

它主要包括兩個階段:初始化階段和自底向上的合并階段。

1.初始化階段:

首先按照屬性值的大小進(jìn)行排序(對于非連續(xù)特征,需要先做數(shù)值轉(zhuǎn)換,比如轉(zhuǎn)為壞人率,然后排序),然后每個屬性值單獨(dú)作為一組。

2.合并階段:

(1)對每一對相鄰的組,計(jì)算卡方值。

(2)根據(jù)計(jì)算的卡方值,對其中最小的一對鄰組合并為一組。

(3)不斷重復(fù)(1),(2)直到計(jì)算出的卡方值都不低于事先設(shè)定的閾值,或者分組數(shù)達(dá)到一定的條件(如最小分組數(shù)5,最大分組數(shù)8)。

值得注意的是,小編之前發(fā)現(xiàn)有的實(shí)現(xiàn)方法在合并階段,計(jì)算的并非相鄰組的卡方值(只考慮在此兩組內(nèi)的樣本,并計(jì)算期望頻數(shù)),因?yàn)樗麄冇谜w樣本來計(jì)算此相鄰兩組的期望頻數(shù)。

下圖是著名的鳶尾花數(shù)據(jù)集sepal-length屬性值的分組及相鄰組的卡方值。最左側(cè)是屬性值,中間3列是class的頻數(shù),最右是卡方值。這個分箱是以卡方閾值1.4的結(jié)果。可以看出,最小的組為[6.7,7.0),它的卡方值是1.5。

如果進(jìn)一步提高閾值,如設(shè)置為4.6,那么以上分箱還將繼續(xù)合并,最終的分箱如下圖:

卡方分箱除了用閾值來做約束條件,還可以進(jìn)一步的加入分箱數(shù)約束,以及最小箱占比,壞人率約束等。

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的python评分卡建模-卡方分箱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。