中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

數(shù)據(jù)科學(xué)家必知:這 11 個建模錯誤可能毀掉你的職業(yè)前途

2020-12-04    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

作者:Dataman 譯者:核子可樂 來源:InfoQ

對我來說,數(shù)據(jù)科學(xué)家們使用高級軟件包、創(chuàng)建令人眼花繚亂的演示方案以及不同算法,絕對是種感官與心靈的雙重享受。數(shù)據(jù)科學(xué)家們有種神秘的氣質(zhì)——穿上一件酷酷的 T 恤、再加上一杯咖啡和一臺筆記本,然后在不動聲色之間成就非凡。

 

 

但這里要給各位從業(yè)者,特別是新手?jǐn)?shù)據(jù)科學(xué)家們提個醒,某些致命錯誤很可能在一夜之間摧毀你的辛勤付出。這些錯誤會損害數(shù)據(jù)科學(xué)家的聲譽,甚至徹底斷送原本光明的數(shù)據(jù)科學(xué)從業(yè)前景。本文的目標(biāo)也非常簡單:幫助大家規(guī)避這類錯誤。

(1) 為什么“Datetime”變量是最重要的變量?

請注意以 yymmdd:hhmmss 格式存在的任意 datetime 字段,我們不能在任何基于樹狀結(jié)構(gòu)的方法中使用此變量。

如下圖所示,該變量的重要性冠絕群倫,這是因為其幾乎被作為所有記錄的唯一標(biāo)識符,正如我們會在決策樹中使用“id”字段一樣。

另外,幾乎可以肯定的是,大家會直接從該字段中導(dǎo)出年、月、日、工作日等信息。請記住,特征工程的核心,在于捕捉可重復(fù)模式(例如特定某個月或者某一周)以預(yù)測未來。

雖然在某些模型中,我們可以使用“year”作為變量來解釋過去曾經(jīng)發(fā)生的任何特定波動,但請永遠(yuǎn)不要將原始的 datetime 字段用作預(yù)測變量。

 

 

(2) 注意變量中的“0”、“-99”或“-999”

 

 

這些通常屬于缺失值,因此系統(tǒng)將其設(shè)定為極值形式。在參數(shù)回歸當(dāng)中,請勿盲目將它們當(dāng)成可用數(shù)值。

不同的系統(tǒng),可能會設(shè)定出“-99”或者“-999”等形式的極值。這些值代表著某些特定含義,且不會隨機缺失。請注意,不要在庫等軟件中盲目處理這類普遍存在的問題。

(3) 如何某個連續(xù)變量中包含“NA”、 “0”、“-99”或“-999”,該怎樣處理?

我建議大家對該連續(xù)變量進行歸類,將其中的“0”、“-99”、“NA”等特殊值劃分為獨立的一類(當(dāng)然也可以采用其他處理方法)。首先,我們可以為該變量設(shè)定分位點:

CD008_cutpoints = quantile(train$CD008, prob = seq(0, 1, 0.1) ,na.rm=TRUE)
CD008_cutpoints

分位點如下所示:

 

 

接下來,利用以上分位點對變量進行歸類,從而創(chuàng)建出新的變量。以下代碼就保留有這類特殊值。這里我使用函數(shù) cut() 將連續(xù)變量劃分為分類變量。我使用 case_when() 來分配“-999”、“-99”、“0”以及“NoData”。(請注意,以下為 R 語言代碼,但分類概念也適用于其他編程語言。)

CD008_cutpoints = c(-99,0,1729,3826,5733.5,7763,10003.5,12663,16085,20971,29357,365483)

# The right treament is this:
train <-train %>% mutate(CD008_D = cut(CD008, breaks = CD008_cutpoints) ) %>%
mutate(CD008_D =
case_when(
CD008 == -999 ~ "-999",
CD008 == -99 ~ "-99",
CD008 == 0 ~ "0",
is.na(CD008) ~ "NoData",
TRUE ~ as.character(CD008_D)
) )

# Understand the frequency
train %>% count(CD008_D)

 

 

(4) 強制將分類變量轉(zhuǎn)換為基本變量

大家可能希望把分類變量轉(zhuǎn)換為數(shù)字變量以運行回歸,但卻錯誤地將分類變量強制轉(zhuǎn)換為數(shù)字變量。下圖所示為將類別“AP006”強行轉(zhuǎn)換為數(shù)字變量的結(jié)果。如果在回歸中使用這個新變量,則品牌“Android”的值將比“h5”的值高出兩倍。

# Understand the frequency
train %>% count(AP006)
# The original categorical variable
head(train$AP006,20)
# Converted (mistakenly) to a numeric variable
newvar = as.numeric(train$AP006)
head(newvar,20)

 

 

(5) 忘記處理回歸中的異常值

 

 

圖中的異常值會導(dǎo)致您的回歸偏向該觀察值,并導(dǎo)致預(yù)測結(jié)果發(fā)生偏差。

(6) 要求線歸回歸中的因變量符合正態(tài)假設(shè)

因變量 Y 不必遵循正態(tài)分布,但是預(yù)測 Y 的相關(guān)誤差應(yīng)該遵循正態(tài)分布。數(shù)據(jù)科學(xué)家經(jīng)常檢查因變量直方圖中的正態(tài)性假設(shè)。在這種特定情況下,如果因變量遵循正態(tài)分布,則會引發(fā)錯誤。

需要再次強調(diào),基本根據(jù)是線性回歸的誤差應(yīng)遵循正態(tài)分布,或者因變量本身會呈現(xiàn)出有條件的正態(tài)分布。我們先來回憶一下線性回歸的定義:在 X 的每個值中,都存在一個符合正態(tài)分布的有條件 Y 分布。以下為線性回歸的四大基本假設(shè):

X 與 Y 之間為線性相關(guān)。
誤差為正態(tài)分布。
誤差具有同方差性(或者說與線周圍的方差相關(guān))。
觀察的獨立性。

根據(jù)大數(shù)定律與中心極限定理,線性回歸中的最小二乘法(OLS)估計值仍將近似真實地分布在參數(shù)真值周圍。因此,在一個大樣本中,即使因變量不符合“正態(tài)假設(shè)”規(guī)則,線性回歸方法仍能夠發(fā)揮作用。

(7) 要求線性回歸中的預(yù)變量符合正態(tài)假設(shè)

那么預(yù)測變量 X 呢?回歸不會假設(shè)預(yù)測變量具有任何分布屬性,其唯一的要求就是檢查是否存在異常值(可使用盒型圖檢查異常值)。如果存在,則在該預(yù)測變量中應(yīng)用上限與下限方法。

(8) 是否需要在決策樹中做出分布假設(shè)?

 

 

在參數(shù)式(例如線性回歸)中,我們可以檢查目標(biāo)變量的分布以選擇正確的分布。例如,如果目標(biāo)變量呈現(xiàn)出 gamma 分布,則可以在廣義線性模型(GLM)中選擇 gamma 分布。

但是,決策樹不會對目標(biāo)變量進行假設(shè)。決策樹的基本工作原理,是將每個父節(jié)點盡可能劃分為不同的節(jié)點。決策樹不會對初始群體或者最終群體的分布做任何假設(shè)。因此,分布的性質(zhì)不影響決策樹的實現(xiàn)。

(9) 是否需要在決策樹中為預(yù)測變量設(shè)置上限與下限?

 

 

在參數(shù)式(例如線性回歸)中,我們必須將異常值的上限設(shè)置為 99%(或 95%)并將下限設(shè)置為 1%(或 5%),從而處理異常值。在基于樹狀結(jié)構(gòu)的算法當(dāng)中,基本不需要在決策樹中設(shè)置上限與下限。

換言之,決策樹對于異常值具有魯棒性。樹算法會在同數(shù)值基礎(chǔ)上拆分?jǐn)?shù)據(jù)點,因此離群值不會對拆分產(chǎn)生太大影響。實際上,如何處理取決于您的超參數(shù)設(shè)置方式。

(10) 我的樹中沒有多少變量,或者變量數(shù)極少

這可能代表大家把復(fù)雜度參數(shù)(cp)設(shè)置得太高。復(fù)雜度參數(shù)(cp)代表的是每個節(jié)點所需要的最小模型改進。我們可以借此拆分節(jié)點來改善相對誤差量。如果對初始根節(jié)點進行拆分,且相對誤差從 1.0 降至 0.5,則根節(jié)點的 cp 為 0.5。

(11) 忘記對 K 均值中的變量進行標(biāo)準(zhǔn)化

 

 

K 均值聚類可能是目前最流行的無監(jiān)督技術(shù),也確實能夠帶來很好的聚類效果。但是,如果沒有將變量標(biāo)準(zhǔn)化為相同的大小,則可能給集群結(jié)果乃至業(yè)務(wù)應(yīng)用帶來災(zāi)難性的后果。

這里,我們用一個簡單的例子進行解釋。假設(shè)(X,Y)空間中的 P1、P2 與 P3 位置分別為(3000,1)、(2000,2)以及(1000,3)。K 均值計算出 P1 與 P2 之間的距離為 1000.0005。由于 X 的大小決定 Y 值,因此 X 會給結(jié)果帶來錯誤影響。我們需要將 X 與 Y 設(shè)置為相同的大小。在本示例中,我們可以在 K 均值中將 X 表示為 X2 以計算距離。

 

 

下面列出幾種可行方法:

(1) 縮放至 (0,1):

range01 <- function(x){(x-min(x))/(max(x)-min(x))}

range01(X)

(2) Z 分?jǐn)?shù):

scale(X, center = TRUE, scale = TRUE)

(3) 達到與先驗知識相同的程度。在本示例中,我們知道 X 的大小為 Y 的 1000 倍,因此可以將 X 除以 1000 來生成 X2,其大小與 Y 相同。

原文鏈接:Avoid These Deadly Modeling Mistakes that May Cost You a Career

標(biāo)簽: 數(shù)據(jù) 蒲Ъ

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:2019年度十大Web開發(fā)趨勢

下一篇:數(shù)據(jù)科學(xué)技能中,哪些是核心技能,哪些是熱門 / 新興技能?