經(jīng)過(guò)數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理,得到了可以直接建模的數(shù)據(jù)砸王。根據(jù)挖掘目標(biāo)和數(shù)據(jù)形式可以建立分類(lèi)與預(yù)測(cè)、聚類(lèi)分析峦阁、關(guān)聯(lián)規(guī)則谦铃、時(shí)序模式和偏差檢測(cè)等模型,幫助企業(yè)提取數(shù)據(jù)中蘊(yùn)含的商業(yè)價(jià)值榔昔,提高企業(yè)的競(jìng)爭(zhēng)力驹闰。
5.1 分類(lèi)與預(yù)測(cè)
就餐飲企業(yè)而言,經(jīng)常會(huì)碰到如下問(wèn)題:
- 如何基于菜品歷史銷(xiāo)售情況件豌,以及節(jié)假日疮方、氣候和競(jìng)爭(zhēng)對(duì)手等影響因素,對(duì)菜品銷(xiāo)量進(jìn)行趨勢(shì)預(yù)測(cè)茧彤?
- 如何預(yù)測(cè)未來(lái)一段時(shí)間哪些顧客會(huì)流失骡显,哪些顧客最有可能會(huì)成為VIP客戶?
- 如何預(yù)測(cè)一種新產(chǎn)品的銷(xiāo)售量曾掂,以及在哪些類(lèi)型的客戶中會(huì)較受歡迎惫谤?
除此之外,餐廳經(jīng)理需要通過(guò)數(shù)據(jù)分析來(lái)幫助他了解具有哪些特征的顧客的消費(fèi)習(xí)慣珠洗;餐飲企業(yè)老板希望知道下個(gè)月的銷(xiāo)售收入溜歪,原材料采購(gòu)需要投入多少,這些都是分類(lèi)與預(yù)測(cè)的例子许蓖。
分類(lèi)和預(yù)測(cè)是預(yù)測(cè)問(wèn)題的兩種主要類(lèi)型蝴猪,分類(lèi)主要是預(yù)測(cè)分類(lèi)標(biāo)號(hào)(離散屬性),而預(yù)測(cè)主要是建立連續(xù)值函數(shù)類(lèi)型膊爪,預(yù)測(cè)給定自變量對(duì)應(yīng)的因變量的值自阱。
5.1.1 實(shí)現(xiàn)過(guò)程
(1)分類(lèi)
分類(lèi)是構(gòu)造一個(gè)分類(lèi)模型,輸入樣本的屬性值米酬,輸出對(duì)應(yīng)的類(lèi)別沛豌,將每個(gè)樣本映射到預(yù)先定義好的類(lèi)別。
分類(lèi)模型建立在已有類(lèi)標(biāo)記的數(shù)據(jù)集上赃额,模型在已有樣本上的準(zhǔn)確率可以方便地計(jì)算加派,所以分類(lèi)屬于有監(jiān)督的學(xué)習(xí)叫确。
(2)預(yù)測(cè)
預(yù)測(cè)是指建立兩種或兩種以上變量間相互依賴的函數(shù)模型,然后進(jìn)行預(yù)測(cè)或控制芍锦。
(3)實(shí)現(xiàn)過(guò)程
分類(lèi)和預(yù)測(cè)的實(shí)現(xiàn)過(guò)程類(lèi)似竹勉,以分類(lèi)模型為例,實(shí)現(xiàn)過(guò)程如下圖所示醉旦。
分類(lèi)算法有兩步過(guò)程:第一步是學(xué)習(xí)步饶米,通過(guò)歸納分析訓(xùn)練樣本集來(lái)建立分類(lèi)模型得到分類(lèi)規(guī)則;第二步是分類(lèi)步车胡,先用已知的測(cè)試樣本集評(píng)估分類(lèi)規(guī)則的準(zhǔn)確率檬输,如果準(zhǔn)確率是可以接受的,則使用該模型對(duì)未知類(lèi)標(biāo)號(hào)的待測(cè)樣本集進(jìn)行預(yù)測(cè)匈棘。
預(yù)測(cè)模型的實(shí)現(xiàn)也有兩步丧慈,類(lèi)似于上圖描述的分類(lèi)模型,第一步是通過(guò)訓(xùn)練集建立預(yù)測(cè)屬性(數(shù)值型的)的函數(shù)模型主卫,第二步在模型通過(guò)檢驗(yàn)后進(jìn)行預(yù)測(cè)或控制逃默。
5.1.2 常用的分類(lèi)與預(yù)測(cè)算法
5.1.3 回歸分析
回歸分析是通過(guò)建立模型來(lái)研究變量之間相互關(guān)系的密切程度、結(jié)構(gòu)狀態(tài)及進(jìn)行模型預(yù)測(cè)的一種有效工具簇搅,在工商管理完域、經(jīng)濟(jì)、社會(huì)瘩将、醫(yī)學(xué)和生物學(xué)領(lǐng)域應(yīng)用十分廣泛吟税。從19世紀(jì)初高斯提出最小二乘估計(jì)起,回歸分析的歷史已有200多年姿现。從經(jīng)典的回歸分析方法到近代的回歸分析方法肠仪,按照研究方法劃分,回歸分析研究的范圍大致如下:
在數(shù)據(jù)挖掘環(huán)境下备典,自變量與因變量具有相關(guān)關(guān)系异旧,自變量的值是已知的,因變量是要預(yù)測(cè)的提佣。
常見(jiàn)的回歸模型如下表:
回歸模型名稱 | 使用條件 | 算法描述 |
---|---|---|
線性回歸 | 因變量與自變量是線性關(guān)系 | 對(duì)一個(gè)或多個(gè)自變量和因變量之間的線性關(guān)系進(jìn)行建模吮蛹,可用最小二乘法求解模型系數(shù) |
非線性回歸 | 因變量與自變量之間不都是線性關(guān)系 | 對(duì)一個(gè)或多個(gè)自變量和因變量之間的非線性關(guān)系進(jìn)行建模。如果非線性關(guān)系可以通過(guò)簡(jiǎn)單的函數(shù)變換轉(zhuǎn)化成線性關(guān)系拌屏,用線性回歸的思想求解潮针;如果不能轉(zhuǎn)化,用非線性最小二乘法求解 |
Logistic回歸 | 因變量一般有1和0(是否)兩種取值 | 是廣義線性回歸模型的特例槐壳,利用Logistic函數(shù)將因變量的取值范圍控制在0和1之間,表示取值為1的概率 |
嶺回歸 | 參與建模的自變量之間具有多重共線性 | 是一種改進(jìn)最小二乘估計(jì)的方法 |
主成分回歸 | 參與建模的自變量之間具有多重共線性 | 主成分回歸是根據(jù)主成分分析的思想提出來(lái)的喜每,是對(duì)最小二乘法的一種改進(jìn)务唐,它是參數(shù)估計(jì)的一種有偏估計(jì)雳攘。可以消除自變量之間的多重共線性 |
線性回歸模型是相對(duì)簡(jiǎn)單的回歸模型枫笛,但是通常因變量和自變量之間呈現(xiàn)某種曲線關(guān)系吨灭,就需要建立非線性回歸模型。
Logistic回歸屬于概率型非線性回歸刑巧,分為二分類(lèi)和多分類(lèi)的回歸模型喧兄。對(duì)于二分類(lèi)的Logistic回歸,因變量y只有“是啊楚、否”兩個(gè)取值吠冤,記為1和0.假設(shè)在自變量x1,x2,...,xp作用下,y取“是”的概率是p恭理,則取“否”的概率是1-p拯辙,研究的是當(dāng)y取“是”發(fā)生的概率p與自變量x1,x2,...,xp的關(guān)系。
當(dāng)自變量之間出現(xiàn)多重共線性時(shí)颜价,用最小二乘估計(jì)的回歸系數(shù)將會(huì)不準(zhǔn)確涯保,消除多重共線性的參數(shù)改進(jìn)的估計(jì)方法主要有嶺回歸和主成分回歸。
1.Logistic回歸分析介紹
(1)Logistic函數(shù)
Logistic回歸模型中的因變量的只有1-0(如是和否周伦、發(fā)生和不發(fā)生)兩種取值夕春。假設(shè)在p個(gè)獨(dú)立自變量x1,x2,...,xp作用下,記y取1的概率是p = P(y = 1|X)
专挪,取0的概率是1-p及志,取1和取0的概率之比為p/(1-p)
,稱為事件的優(yōu)勢(shì)比(odds)狈蚤,對(duì)odds曲子然對(duì)數(shù)即得Logistic變換Logit(p) = ln(p/(1-p))
困肩。
令Logit(p) = ln(p/(1-p)) = z
,則p = 1/(1+e-z)即為L(zhǎng)ogistic函數(shù)脆侮,如下圖所示:
當(dāng)p在(0,1)之間變化時(shí)锌畸,odds的取值范圍是(0, +∞),則
ln(p/(1-p))
的取值范圍是(-∞,+∞)靖避。(2)Logistic回歸模型
Logistic回歸模型是建立
ln(p/(1-p))
與自變量的線性回歸模型潭枣。Logistic回歸模型為:
因?yàn)?code>ln(p/(1-p))的取值范圍是(-∞,+∞),這樣幻捏,自變量x1,x2,...,xp可在任意范圍內(nèi)取值盆犁。
記g(x) = β0+β1x1+...+βpxp,得到:
(3)Logistic回歸模型解釋
2.Logistic回歸建模步驟
Logistic回歸模型的建模步驟如下所示:
1)根據(jù)分析目的設(shè)置指標(biāo)變量(因變量和自變量)篡九,然后收集數(shù)據(jù)谐岁,根據(jù)收集到的數(shù)據(jù),對(duì)特征再次進(jìn)行篩選;
2)y取1的概率是
p = P(y = 1|X)
伊佃,取0概率是1-p窜司。用ln(p/(1-p))
和自變量列出線性回歸方程,估計(jì)出模型中的回歸系數(shù)航揉;3)進(jìn)行模型檢驗(yàn)塞祈。模型有效性的檢驗(yàn)指標(biāo)有很多,最基本的有正確率帅涂,其次有混淆矩陣议薪、ROC曲線、KS值等媳友。
4)模型應(yīng)用:輸入自變量的取值斯议,就可以得到預(yù)測(cè)變量的值,或者根據(jù)預(yù)測(cè)變量的值去控制自變量的取值庆锦。
下面對(duì)某銀行在降低貸款拖欠率的數(shù)據(jù)進(jìn)行邏輯回歸建模捅位,該數(shù)據(jù)示例如下表所示:
年齡 | 教育 | 工齡 | 地址 | 收入 | 負(fù)債率 | 信用卡負(fù)債 | 其他負(fù)債 | 違約 |
---|---|---|---|---|---|---|---|---|
41 | 3 | 17 | 12 | 176.00 | 9.30 | 11.36 | 5.01 | 1 |
27 | 1 | 10 | 6 | 31.00 | 17.30 | 1.36 | 4.00 | 0 |
40 | 1 | 15 | 14 | 55.00 | 5.50 | 0.86 | 2.17 | 0 |
41 | 1 | 15 | 14 | 120.00 | 2.90 | 2.66 | 0.82 | 0 |
24 | 2 | 2 | 0 | 28.00 | 17.30 | 1.79 | 3.06 | 1 |
利用Scikit-Learn對(duì)這個(gè)數(shù)據(jù)進(jìn)行邏輯回歸分析。首先進(jìn)行特征篩選搂抒,特征篩選的方法有很多艇搀,主要包含在Scikit-Learn的feature_selection庫(kù)中,比較簡(jiǎn)單的有通過(guò)F檢驗(yàn)(f_regression)來(lái)給出各個(gè)特征的F值和p值求晶,從而可以篩選變量(選擇F值大的或者p值小的特征)焰雕。其次有遞歸特征消除(Recurisive Feature Elimination,RFE)和穩(wěn)定性選擇(Stability Selection)等比較新的方法芳杏。這里使用了穩(wěn)定性選擇方法中的隨機(jī)邏輯回歸進(jìn)行特征篩選矩屁,然后利用篩選后的特征建立邏輯回歸模型,輸出平均正確率爵赵,其代碼如下:
# _*_ coding:utf-8 _*_
# 邏輯回歸 自動(dòng)建模
import pandas as pd
# 參數(shù)初始化
filename = 'data/fifth_data/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:, :8].as_matrix()
y = data.iloc[:, 8].as_matrix()
from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
rlr = RLR() # 建立隨機(jī)邏輯回歸模型吝秕,篩選變量
rlr.fit(x, y) # 訓(xùn)練模型
rlr.get_support() # 獲取特征篩選結(jié)果,也可以通過(guò).scores_方法獲取各個(gè)特征的分?jǐn)?shù)
print(u'通過(guò)隨機(jī)邏輯回歸建模篩選特征結(jié)束空幻。')
print(u'有效特征維:%s' % ','.join(data.columns[rlr.get_support()]))
x = data[data.columns[rlr.get_support()]].as_matrix() # 篩選好特征
lr = LR()
lr.fit(x, y) # 用篩選后的特征數(shù)據(jù)來(lái)訓(xùn)練模型
print(u'邏輯回歸模型訓(xùn)練結(jié)束烁峭。')
print(u'模型的平均正確率為:%s' % lr.score(x, y))
運(yùn)行結(jié)果:
通過(guò)隨機(jī)邏輯回歸模型篩選特征結(jié)束。
有效特征為:工齡秕铛,地址约郁,負(fù)債率,信用卡負(fù)債
邏輯回歸模型訓(xùn)練結(jié)束但两。
模型的平均正確率為:0.814285714286