CDA二期学习笔记
變量分類
SAS中
Binary:是二值類別型
Norninal:名義型,即多元類別型
Interval:數值型變量
Ordinal:順序型,有序因子modeler中
nornimal:名以變量,指分類的1,2,3,4…變量,在R語言中叫因子.
continual:連續變量,指變量本身是數值的.
flag:標識,二值類別型,在只有兩類的情況下,nornimal會退化成flag.
數據挖掘的6步驟
數據庫的數據可能也是錯的
如:同一個人但是有兩個不同的名字
本身只有5種雜志但是有6個不同的名字
日期的購買日期大于開店的時間
住址本身沒有用,但是可以整理成區域
data_coding:重編碼
出生日期 –> 年齡
住址 –>區域
歸一化,標準化
編碼方式決定結果的形態,方式,或者結果的產生,或者能不能得到好結果
攤平處理
一個人一般只會有一筆記錄,如果有多條記錄,則需要攤平處理,比如購買5種雜志會有5條記錄,則需要修改為是否購買1,2,3,4,5雜志這5個新字段。
即:行轉列
相關分析
學生化(標準化)
Z2=x?μμ
建議臨界值:
|SR|>2:用于觀察值較少的數據集
|SR|>3:用于觀察值較多的數據集
字段觀測方法
數值型字段:輸出各種描述性統計量,直方圖
類別型字段:用分布圖
卡方統計量
卡方值越大,代表字段與目標之間的關系越緊密。 **步驟比如:** 99/243,31/243,113/243
數據挖掘的分類
描述性數據挖掘:無目標字段
關聯規則:找出哪些事件會一起出現
集群分析:找出內部結果(聚類分析)
序列型樣:循環出現,按照一定的順序出現
預測性數據挖掘:有目標字段
應用場景:
決策->分類
排序->信用卡評分
估計->預測數值,判斷所屬類別的概率
預測->目標字段是數值型型(決策樹,類神經網絡,線性回歸,時間序列)
分類->目標字段是分類型的(貝氏網絡,決策樹,神經網絡,邏輯回歸)
模型的評估
1.Gain-Cart績效增益曲線
2.Lift-Chart績效的增益
3.成本-收益矩陣(cost-matrix)
| 有 | 44元 | -1元 |
| 無 | 0元 | 0元 |
這是成本收益矩陣,取預測的前10%的人計算成本與收益,畫圖。
繪制10%,20%,30%……得到成本收益圖。
建立區隔化模型
將年齡分三段,然后分別建立模型
噪聲處理
1.類別型:看分布,找錯誤值
2.數值型:看分布,找離群值
3.用箱線圖
4.均值3倍標準差
錯誤值
視為空值–>在用空值填補法(用fillter節點,即填充、替換的意思)
空值
banks and null 中的”undef”,也可以寫成’null’(比較麻煩,null外面還要有單引號)
空字符串:用兩個雙引號引住,沒有空格即可。
離群值
1.排序后用肉眼看也是可以的,但是不好
2.均值的3倍標準差
3.四分位數法
處理:視為空值(替換),然后用空值填補法
天花板/地板法(比較好),結合四分位數替換
重要:在輸出面板–>數據審核節點(離群值、空值)–>然后在數據審核的質量面板進行替換操作
數據審核節點–>質量面板
強制:使用天花板地板法替換
丟棄:這筆數據就不要了
無效:將離群值變成空值
處理空值的方法
如果目標字段為空值,那么這條記錄也是沒辦法用的,要刪除
如果字段缺失值比例較大(50%),那么這個字段可以刪除
modeler對應的空值過濾節點操作:
數據審核節點-->質量面板-->生成菜單-->缺失值選擇節點如果有空值則為0,無空值則1。
modeler對應的空值過濾節點操作:
使用導出節點:基于現有的字段產生新字段 選擇導出為公式 函數選擇 “邏輯函數”,空值的寫法是 '$null$'3.1 填入未知,那么這個是一個新的類型,但是建模的時候會有問題,很難解釋模型的結果
3.2 填入眾數:也可以用分類的方式,分類求眾數
3.3 用推論法:把缺失值問題當作分類的問題
modeler對應的空值填補節點操作:
還是數據審核節點-->質量面板:四分位數法-->運行 -->在結果面板中:缺失值插補(選擇空值),方法(指定) -->然后算法(C&RT) -->生產處理空值的超節點 # 指定的方法選項中也包括了眾數,常數,未知(在常量)什么的 # C&RT算法針對的是類別型變量 # 如果是數值型變量:可以用眾數,中位數,均值什么的填補空值,或者用推論法,將空值當作分類預測問題模型評估:
模型建完后如何看正確率
輸出-->分析節點混淆矩陣
正確率(Accurary) = (實際為對–>預測為對,實際為錯–>預測為錯)/總數
回應率,命中率(pression) = (實際為對–>預測為對)/(預測為對的數量)
也就是預測集合中有多少是對的
捕捉率,查全率(recall) = (實際為對–>預測為對)/(實際為對的數量)
也就是實際對的集合中預測對了幾個
F-指標 = (2 x 回應率 x 捕捉率)/(回應率+捕捉率)
F-指標只有在回應率和捕捉率都高的情況下才高,不然數據結果容易被人做手腳。
命中率:你預測為對的數據中,實際對了幾個
捕捉率:在對的數據中,你猜中了多少個
果然是見名知意啊。
混淆矩陣在分析節點的第一個選項
模型之后接一個table節點 可以看到模型預測的概率值模型之后接排序節點 則可以制作Gain-Chart增益曲線 即選擇回應率什么的最高的前多少用戶3種評估預測模型好壞的方法
(1)、MAE=∑∣∣Y^?Y∣∣N
(2)、MSE=∑∣∣Y^?Y∣∣2N
(3)、R2=SSRSST=1?SSESST
SSR=∑(Yi^?Yˉ)2
SSE=∑(Yi?Yi^)2
SST=∑(Yi?Y^)2
改善的R2:因為R2會隨著變量而增加,所以有了這個改善的R2.
數據轉換
數據正規化
數據合并
比如將某兩類取值合并到同一類值中,針對名義型變量
數據精簡
數值型:叫做離散化
類別型:叫做數據合并,向上提升的一般化
數據離散化
數值型屬性常常是模型不穩定的原因
數據精簡,降低模型的復雜度
某些算法不支持數值型屬性
等寬:每個刻度的單位長度是一樣的
等分:每個分段內的數據量是一樣的
兩階段抽樣:先從100萬抽樣到10萬,再從10萬抽樣到1萬,可以有2次機會過濾掉噪聲。
字段精簡
首先人工分析一遍所有的字段
1. 分類模型:用卡方和方差分析
2. 預測模型:相關系數
3. 分群模型:主成分分析,因子分析
類別 <—- 卡方 —-> 類別
類別 <—- 方差 —-> 數值
數值 <– 相關分析 –> 數值
訓練集測試集的劃分
字段-->分區節點(但是不太好,訓練集和測試集的結果分布可能是有差別的) 這時可以用分層抽樣 記錄-->樣本節點-->專家選項 訓練集:分層與聚類方式中選擇分層,不要選擇聚類 測試集:在訓練集的簡單項設置里,設置為丟棄樣本,其他不變將目標分層0,1兩群,分別抽80%作為訓練集,剩下的作為測試集
記錄-->樣本節點 但是要設置隨機數種子簡單貝葉斯網絡
只接受類別型字段
貝氏網絡
還考慮了字段間的關聯性和因果關系
線性回歸
modeler的線性回歸之所以能處理分類字段,是自動進行了攤平處理
多個模型是可以連接起來的
數據流經多個模型后接個分析節點,那么它的分析預測值是多個模型預測值的平均。
決策樹
決策樹的分裂規則
| ID3 | Information Gain | 信息增益 |
| C4.5、C5.0 | Gain Ration | 信息增益率 |
| CART | Gini Index | 基尼系數 |
| CHAID | Chi-Square Statistic | 卡方統計量 |
CART樹會自動抽取30%的數據作為驗證集,所以會較好防止過擬合。
所有決策樹的原理
剛開始將所有的數據都放在根節點,根據所選字段遞歸地做切割數據,使得正確率最高,即切割后的數據,盡量多地只屬于其中的某一個類別。
自動屬性選擇
決策樹會自動進行屬性挑選,即使前面的描述性統計分析步驟沒有做這一部分的工作。
剪枝
1. C4.5,C5.0,CART:使用由下往上修剪法,先讓樹長滿長全,再去剪枝。
2. CHAID:由上往下法,設定停止規則。
ID3缺點
不能處理數值型字段,這時候要離散化,也不能砍樹。
不能處理空值
每個節點的分支度都不同
容易使結果偏向于盡可能多的分類
ID3:信息增益的計算公式
1. 先看目標字段的分布:Entropy公式
I(s1,s2)=I(9,5)=?914log2914?514log2514=0.940
值域[0,1],越接近1,則是平均分布,0則偏某一類。
然后對某個字段(分類)的每個分類,計算目標字段的Entropy值,然后對每個分類的Entropy值進行加權求和。
信息增益 Information Gain = 步驟1 - 步驟2的Entropy值
=0.940-0.694=0.246
即該字段能帶來0.246的好處。
對每個字段都這么計算,取最大的信息增益作為該字段的切割。
C4.5
是改良的ID3.
增加了分支度:Information Value
分支度:比如14個分3支,分別有5,4,5筆數據,則
InformationValue==?514log2514?414log2414?514log2514
和Entropy一樣的公式。
也可以處理數值型數據,自動離散化。原理是這樣的,先將數值排序,然后對相鄰兩個數值切割,計算Gain Ratio,取最高的作為分割點。
C4.5的剪枝
先長到100%分類正確,然后計算每個分支的錯誤率,如果只有一個值,則認為錯誤率是0.750(預設)x1(該分支的記錄數),然后加和。
這些預期錯誤率都是預設的。
計算展開和收起來的預期錯誤率,然后去最小的。
C4.5也可以處理空值。
CART:分類回歸樹
二元分類回歸樹,處理二元的分類
使用驗證集數據砍樹,所以一定要有驗證數據集,否則不砍樹。
Gini的計算:
當完全偏向某一類時是0,完全平均分配是0.5.
| yes | 2 | 7 |
| no | 3 | 2 |
Gain(<30)=514×(1?(225+325))+914×(1?(729+229))=0.394
路長有3中情況,另外兩種分類:
| yes | 4 | 5 |
| no | 0 | 5 |
| yes | 4 | 5 |
| no | 0 | 5 |
取Gini最大的作為切分分類。
時間序列
趨勢性
季節性
ARIMA模型
通過差分來處理趨勢性,構建平穩的時間序列。
季節性:利用自相關函數ACF(即皮爾森相關系數,也就是改改名字而已)
消除季節性:移動平均。
即:n2=(n2+n1+n)/3
| simple | 簡單指數平滑,適用于沒有明顯趨勢性和季節性 |
| Holts線性 | 適用于有趨勢性但是沒有明顯季節性 |
| Browns線性 | 適用于具有趨勢性但是沒有明顯季節性 |
| Damped趨勢 | 具有逐漸衰退的趨勢性,但是沒有明顯的季節性 |
| Simple Seasonal簡單季節性法 | 沒有趨勢性,但是季節效應是一種常數 |
| winters加法 | 具有趨勢性,但是季節效應是一個常數 |
| winters乘法 | 具有趨勢性,但是季節效應隨時間越發明顯 |
時間序列:在某個點突然很高或者很低,就要考慮是不是突發事件促銷,導致的異常。
神經網絡
一般隱含層神經元個數^2 = (輸入層x輸出層)
誤差反饋:
Error=∑(T?O)2
T:預期輸出,O:實際輸出。
為使誤差最小,應該對Error微分求極值。
對每個權重微分,所以是個偏微分。
隱含層只有一個,沒有輸出層,且轉換函數是線性函數,則神經網絡退化成線性回歸。
如果轉換函數是S型函數,則退化成邏輯回歸。
不能處理空值,分類型字段。
只能接受數字在0-1之間的數據,所以要歸一化。
預測之后還要還原程原來的數值范圍。
如果是分類型字段,可以用攤平處理。
分類–>001,010,100…等這種表達方式。
邏輯回歸
邏輯回歸就是將線性回歸方程的值,壓縮在0-1之間才能產生合理的值。
邏輯回歸和神經網絡所用的S型函數是一樣的。
只能做二元分類,不能用于多分類問題。
邏輯回歸還會挑選變量,而神經網絡不會做這一步。
1.前進法:挑出最重要的一個變量放進去,在挑下一個
2.后退法:全部放進去,在試圖剔除每一個,將誤差影響最小的真的剔除。
3.逐步法
4.全子集法
聚類分析
有三個關心重點
1.如何以數量的形式表示成員間的相關性。
2.如何根據這些相似性將類似的成員分為一個群。
3.分群完畢后,如何描述每個群的性質。
相似性的計算
1.如果所有的字段都是二元的:
| . | . | Y |
| jack | Y | i |
| jack | N | j |
計算不同的個數 d=(j+m)/(i+j+m+n)
Jxx的距離計算,會忽略N-N的情況,因為N-N不代表都是N,也有可能是其他屬性導致都是N,但是N不代表一樣的情況。
Jxx = (j+m)/(i+j+m)
2.數值型
2.1城市直角距離
年齡范圍:range=20-70
收入范圍:range=200-1000
| 用戶1 | 20 | 3000 |
| 用戶2 | 30 | 5000 |
距離:
d=|20?30|max?min+|3000?5000|max?min=0.4
做聚類時一定要做正規化,否則單位不一致,某些數值過大導致異常(極值正規化)。
歐式距離:
d=(x?y)2???????√=(|20?30|max?min)2+(|3000?5000|max?min)2???????????????????????????????=0.2828
3.順序型
在兩個連續狀態之間是不等距的。
4.類別型+數值型+二元型
d1 = 數值型:用歐式距離或者曼哈頓距離
d2 = 二值型:不一樣就是不一樣,直接等于1
d3 = 類別型:曼哈頓距離
總距離 = (d1+d2+…)/n(字段數)
聚類的方法
Exclusive:每個資料點只屬于一個群
No-exclusic:一個資料點屬于多個群,只是概率不一樣而已。
1.階層式的聚類方法:大部分統計軟件提供,先將每個點分成一個群,再慢慢合并到一個大群。
2.分割式的聚類方法:一次將資料分成指定的群書數,同城是分割式較好,大多是挖掘軟件提供。
分割式聚類包括:K-means,SOM,兩步聚類
階層式可以決定群數,但是結果不好,所以就是階層式決定群數,在用k-means跑。
k-means缺點:
1.對極值敏感。那么反過來,可以用來尋找極值點,去掉極值后在k-means
2.不是最佳化的方法,可能因為初始化中心不同而不同。
只能處理數值型字段
聚類完后都是要對類進行描述的,在聚類建模的黃金節點中。
關聯規則
for rue : A –>C
支持度:同時購買A和C的概率
信賴度:買A的情況下還買C的概率
同時滿足最小支持度和最小信賴度的規則才是要求規則。
如何描述規則:
shirt –>Tie(support=13.5%,confidence=70%)
當顧客買了shirt,有70%的概率也會買tie,我們發現這兩個被一起購買的概率在交易資料庫中是13.5%。
Apriori principle理論:
核心原理是:所有被頻繁購買的集合,它的子集合也是頻繁的。那么反過來,如果子集合都不頻繁,它與其他子集合的組合也不用考慮了。
支持度和信賴度也會誤導人
此時就要計算A,B商品的相關性
Corr(A,B)=P(A∩B)P(A)?P(B)
如果是負相關就不用考慮了。
即要求Corr(a,b)>1,因為Corr在[0,2]之間。
A–>C的前向支持度:
即A的支持度,不考慮C是否存在。
總結
- 上一篇: 相关系数之皮尔逊pearson相关系数和
- 下一篇: 运筹优化(二)--线性规划概念及应用模型