發表文章

Tree models

圖片
大家好,頗久沒寫新文章, 一來是工作讓我投入其中; 二來是晚上很多時刻被netflix 綁架了.....XD 本篇將在資料集中使用不同的樹模型,包含: 1. 決策樹 2. 經由決策樹Bagging而成的RandomForest 3. XGBOOST 這次使用的資料則是mlbench裡的diabetes資料集,探討各因素對於糖尿病的症狀影響程度有多少,話不多說,開始吧! library(mlbench) data(PimaIndiansDiabetes) diabetes <- PimaIndiansDiabetes set.seed(22) train.index <- sample(x=1:nrow(diabetes), size=ceiling(0.8*nrow(diabetes))) train = diabetes[train.index, ] test = diabetes[-train.index, ]   #設定測試集與訓練集 再來就是先看看整份資料的狀況吧 > summary(diabetes) pregnant glucose pressure triceps Min. : 0.000 Min. : 0.0 Min. : 0.00 Min. : 0.00 1st Qu.: 1.000 1st Qu.: 99.0 1st Qu.: 62.00 1st Qu.: 0.00 Median : 3.000 Median :117.0 Median : 72.00 Median :23.00 Mean : 3.845 Mean :120.9 Mean : 69.11 Mean :20.54 3rd Qu.: 6.000 3rd Qu.:140.2 3rd Qu.: 80.00 3rd Qu.:32.00 Max. :17.000 Max. :199.0 Max. :122.00 Max. :99.00 insulin mass ...

Data wrangling and visualization

圖片
I. 緣由           As title, 隨著處理資料的技能越點越多,基本上在每一次的分析裡不可能只用到一個data table,一定還會伴隨著很多合併(merge)、角力(wrangling)的過程;進行EDA的時候也一定會使用到視覺化的技術,好讓資料看起來能更加的能夠溝通。           這篇文章會以R for data science為基礎,介紹裡面關於R是如何處理關聯資料集(relational data) 與 資料視覺化(data visualization ) 的相關技巧。            同時,在我學習python的時候也提醒自己不要忘記R的語法~~~ II. tidy data       Tidy data  是由 R Studio 之神 Hadley Wickham(不誇張,真的) 所提出,是一種「資料架構標準」, 有分析經驗的朋友們都知道,資料角力會花上的時間遠比建模來的多,然而,傳統的方式把資料清理乾淨,有時不一定利於分析,例如Excel的樞紐分析,因此Hadley Wickham題出了以結構化的方式整理資料更有利於後續分析,就是所謂的 tidy data。         而一個 Tidy Dataset 會滿足以下三個條件(如下圖所示): 每個變數 (variable) 都會形成一個 column 每個觀察個體 (observation) 都會形成一個 row 每一種類型的觀察個體會形成一個 table,比如說:地區特徵跟個體資料應該存成兩個不同的資料表格。 介紹一下幾種常用的功能: 1. gather head(table4a) # A tibble: 3 x 3 country `1999` `2000` <chr> <int> <int> 1 Afghanistan 745 2666 2 Brazil 37737 80488 ...

多元迴歸分析- subsets and shrinkage

圖片
     多元迴歸分析是統計學裡舉足輕重的角色,解釋、個體與趨勢預測都是強而有力的好伙伴,但是,當我們發現變數太多,不知道挑選哪一個,或者變數間相關係數非常的高,該怎麼辦?       本篇文章將會由Subsets Methods裡的Stepwise regression 開始介紹起,再來說明Shrinkage Methods 裡 lasso and ridge兩種不同的迴歸方法。 -------------------------------------------------------- A. 前言 回歸或許是很強而有力的伙伴,但是相對的,使用條件也相對複雜得多,回歸模型往往伴隨著許多的變異,因此很輕易的將變數丟進去model裡,勢必會有很多的問題產生,例如: 1.  Predict data放了不適當的變數造成了Overfitting導致實際上的testing data預測效果太差。 2. 解釋變數彼此的相關程度很高,型成共線性的問題,反而讓coefficient被大大影響,通常判斷共線性的標準主要為: I.容忍度( tolerance ,小於 0.1 有共線性問題) II.變異數膨脹因素( Variance inflation factor, VIF ,大於 10 有共線性問題) III.條件指標( Condition index, CI ,大於 30 有共線性問題) 為了解決這個方法,subsets 與 shrinkage兩種方法便孕育而生了 兩種方法代表模型如下: subsets: Stepwise            shringkage: lasso and ridge 其中lasso 跟Stepwise目前被頻繁用於變數挑選上。 B. 子集回歸(subsets regression) Forward stepwise: 在空的迴歸模型中,逐一加入變數,直到AIC值為最小  Backward stepwise: 在包含所有變數的模型中,逐一刪除變數,直到AIC值為最小  Bo...

Kaggle 鐵達尼生存預測 top 6%

圖片
主題: Kaggle 鐵達尼生存預測 top 6% and R語言 學習歷程小分享 適合對象: 對機器學習有興趣的初學者 小弟的背景: 國立大學BA碩畢,接觸R語言近一年~ <前言>      本來是只會SPSS搭配個Process外掛的社科生,某天撇到教授桌上安裝的R語言覺得好奇,餵狗後發現人外有人天外有天,於是開始了R語言的自學之路.....      接觸後開始學習用R跑SPSS已經會的分析,爾後慢慢接觸到機器學習的領域,更是覺得自己不過是個小小C咖,接受自己渺小後就開始努力學習一直到現在了.....       學了一陣子相關理論以及coding練習操作,再來就是挑戰手邊可以觸及的Open Source,Kaggle的鐵達尼存活分析便是一個很適合初學者的專案,加上前10趴用R語言討論titanic的文章不多QAQ,所以決定產出這篇。 <Titanic> 這次的分析步驟主要為: A.針對整體資料進行EDA 初探 分析資料前,最基本的問題便是,對於資料的"外表"了解多少? 除了基本的敘述性統計,以視覺化的方式表現可以立刻地掌握出變數間的關係,也是後期特徵工程很重要的參考基準。 B. 對於資料進行整理 和EDA同樣重要的便是對於NA遺漏值的清理、複雜的字串處理以及對於data frame的型式整理。 以上ab兩步驟便是Data mining流程中很重要的Data understanding & Data preparation,其實跟data相關的工作基本上大概花了百分之80以上的時間在這兩步(甚至更多!!!!!!),實在是個大工程。 C. Model 建模的選擇 from :  https://zi.media/@yidianzixun/post/npCNEk          這次的分析是先透過訓練data後,再對剩下的testing data做存活與否binary的預測,乃監督式學習,所以當時的考量有: random forest, logistic regression, SVM,在Kaggle板上也都有人試過了,...