第五章 挖掘建模

經(jīng)過(guò)數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理,得到了可以直接建模的數(shù)據(jù)。根據(jù)挖掘目標(biāo)和數(shù)據(jù)形式可以建立分類與預(yù)測(cè)、聚類分析、關(guān)聯(lián)規(guī)則、時(shí)序模式和偏差檢測(cè)等模型,幫助企業(yè)提取數(shù)據(jù)中蘊(yùn)含的商業(yè)價(jià)值,提高企業(yè)的競(jìng)爭(zhēng)力。

5.1 分類與預(yù)測(cè)

就餐飲企業(yè)而言,經(jīng)常會(huì)碰到如下問(wèn)題:

  1. 如何基于菜品歷史銷售情況,以及節(jié)假日、氣候和競(jìng)爭(zhēng)對(duì)手等影響因素,對(duì)菜品銷量進(jìn)行趨勢(shì)預(yù)測(cè)?
  2. 如何預(yù)測(cè)未來(lái)一段時(shí)間哪些顧客會(huì)流失,哪些顧客最有可能會(huì)成為VIP客戶?
  3. 如何預(yù)測(cè)一種新產(chǎn)品的銷售量,以及在哪些類型的客戶中會(huì)較受歡迎?

除此之外,餐廳經(jīng)理需要通過(guò)數(shù)據(jù)分析來(lái)幫助他了解具有哪些特征的顧客的消費(fèi)習(xí)慣;餐飲企業(yè)老板希望知道下個(gè)月的銷售收入,原材料采購(gòu)需要投入多少,這些都是分類與預(yù)測(cè)的例子。
分類和預(yù)測(cè)是預(yù)測(cè)問(wèn)題的兩種主要類型,分類主要是預(yù)測(cè)分類標(biāo)號(hào)(離散屬性),而預(yù)測(cè)主要是建立連續(xù)值函數(shù)類型,預(yù)測(cè)給定自變量對(duì)應(yīng)的因變量的值。

5.1.1 實(shí)現(xiàn)過(guò)程

(1)分類
分類是構(gòu)造一個(gè)分類模型,輸入樣本的屬性值,輸出對(duì)應(yīng)的類別,將每個(gè)樣本映射到預(yù)先定義好的類別。
分類模型建立在已有類標(biāo)記的數(shù)據(jù)集上,模型在已有樣本上的準(zhǔn)確率可以方便地計(jì)算,所以分類屬于有監(jiān)督的學(xué)習(xí)。
(2)預(yù)測(cè)
預(yù)測(cè)是指建立兩種或兩種以上變量間相互依賴的函數(shù)模型,然后進(jìn)行預(yù)測(cè)或控制。
(3)實(shí)現(xiàn)過(guò)程
分類和預(yù)測(cè)的實(shí)現(xiàn)過(guò)程類似,以分類模型為例,實(shí)現(xiàn)過(guò)程如下圖所示。


分類模型的實(shí)現(xiàn)步驟

分類算法有兩步過(guò)程:第一步是學(xué)習(xí)步,通過(guò)歸納分析訓(xùn)練樣本集來(lái)建立分類模型得到分類規(guī)則;第二步是分類步,先用已知的測(cè)試樣本集評(píng)估分類規(guī)則的準(zhǔn)確率,如果準(zhǔn)確率是可以接受的,則使用該模型對(duì)未知類標(biāo)號(hào)的待測(cè)樣本集進(jìn)行預(yù)測(cè)。
預(yù)測(cè)模型的實(shí)現(xiàn)也有兩步,類似于上圖描述的分類模型,第一步是通過(guò)訓(xùn)練集建立預(yù)測(cè)屬性(數(shù)值型的)的函數(shù)模型,第二步在模型通過(guò)檢驗(yàn)后進(jìn)行預(yù)測(cè)或控制。

5.1.2 常用的分類與預(yù)測(cè)算法

主要分類與預(yù)測(cè)算法簡(jiǎn)介

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è)的。
常見的回歸模型如下表:

回歸模型名稱 使用條件 算法描述
線性回歸 因變量與自變量是線性關(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ì)??梢韵宰兞恐g的多重共線性

線性回歸模型是相對(duì)簡(jiǎn)單的回歸模型,但是通常因變量和自變量之間呈現(xiàn)某種曲線關(guān)系,就需要建立非線性回歸模型。
Logistic回歸屬于概率型非線性回歸,分為二分類和多分類的回歸模型。對(duì)于二分類的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ù),如下圖所示:

Logistic函數(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) = β01x1+...+βpxp,得到:

(3)Logistic回歸模型解釋

2.Logistic回歸建模步驟

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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容