日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言笔记之特征工程

發(fā)布時間:2023/12/29 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言笔记之特征工程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.特征構建(藝術成分最高)

特征構建指的是從原始數(shù)據(jù)中人工地構建新的特征
它需要我們從原始數(shù)據(jù)中找出一些具有物理意義的特征

2.特征提取

它是一項用不同變量的組合代替原變量的技術
它的目的是自動地構建新的特征,將原始特征轉換為一組具有明顯物理意義或者統(tǒng)計意義的特征。
下面是3個常用的對數(shù)據(jù)降維的特征提取方法
(1)主成分分析(PCA)
(2)探索性因子分析(EFA)
(3)高維標度化(MDS)

3.特征選擇

在建立統(tǒng)計模型常常會有以下幾個問題
a.模型擬合情況如何?
b.模型在新樣本上預測的情況如何?
c.所有的自變量都有助于解釋因變量(y),還是只有其中部分重要的自變量?
以上三個問題的共同前提是要先有一個評判模型的好與壞的標準
特征選擇的主要目的是刪除無信息變量或冗余變量,從而達到降維的效果。
特征選擇的方法主要可以分成3類:
(1)過濾法(filter)

過濾法主要側重于單個特征與目標變量的關系,在建模前對每個特征進行評估,選擇“重要”的變量進行建模。
這里所說的重要性指的是一個量化預測變量和結果變量之間關系的粗略度量。
如果缺失某特征導致模型表現(xiàn)大幅度下降,表明變量重要性大。
該方法優(yōu)點是計算時間上較高效。
該方法缺點是傾向于選擇冗余的特征,因為他們不考慮特征之間的相關性,如果某一個特征重要性較高,所有和該特征高相關的特征重要性都會很高。
a.特征重要性度量
特征重要性度量的方式和其類型有關,分類型和連續(xù)型特征度量差別很大
這里我們按照不同的特征和因變量類型來介紹相應的常用度量。
a1.-因變量和特征都是數(shù)值型,最常用的是簡單相關性統(tǒng)計量。
Pearson相關系數(shù)衡量線性相關,Spearman相關系數(shù)衡量曲線相關
Kendall相關系數(shù)衡量兩個變量觀測排序的一致性
基礎包中的cor()函數(shù)可以計算這些相關性。
-用一個相關性度量有時會丟失很多信息,可以用局部加權回歸模型(Loess),該方法對一系列局部區(qū)域樣本應用多項式回歸。這種方法可以有效得到平滑的回歸趨勢。
基礎包中的loess()函數(shù)可以進行Loess平滑。
Lattice包中的xyplot()以及ggplot2包可以很方便對其進行可視化。
a2:對于特征是數(shù)值型,因變量是分類型的情況,可以使用ROC曲線下面積量化特征和因變量的相關性。
a3:如果特征和因變量都是分類型,有幾種用于測量變量重要性的方法。
對于二分類預測變量,一個有效的方式是使用讓步比。它表明從預測變量的第一類到預測變量的第二類,對應時間發(fā)生比的變化。
可以用Fisher確切檢驗來測量預測變量和相應結果類別的聯(lián)系。
b.Relief算法
Relief為一系列算法,和其他重要性衡量的方法類似,該算法給出的是一個重要性分值,將分值低于某個閾值的特征移除。
這里可以將閾值當作調優(yōu)參數(shù)通過劃分測試集合訓練集,基于一個模型表現(xiàn)的度量進行選擇。
原始的Relief算法的基本原理是通過特征對近距離樣本的區(qū)分能力來估計重要性。
c.結束

Relief算法的運行時間隨著樣本的抽樣次數(shù)m和原始特征個數(shù)p的增加線性地增加,因而運行效率非常高。
Relief統(tǒng)計量的計算可以使用CORElearn包,attrEval()函數(shù)能計算幾個不同版本的Relief值(使用estimator選項),該函數(shù)也能用來計算其他分值,如增益比,基尼系數(shù)等。

> library(CORElearn) Warning message: 程輯包‘CORElearn’是用R版本3.4.3 來建造的 > infoCore(what="attrEvalReg") [1] "RReliefFequalK" "RReliefFexpRank" "RReliefFbestK" "RReliefFwithMSE" "MSEofMean" [6] "MSEofModel" "MAEofModel" "RReliefFdistance" "RReliefFsqrDistance" > infoCore(what="attrEval")[1] "ReliefFequalK" "ReliefFexpRank" "ReliefFbestK" "Relief" "InfGain" "GainRatio" [7] "MDL" "Gini" "MyopicReliefF" "Accuracy" "ReliefFmerit" "ReliefFdistance" [13] "ReliefFsqrDistance" "DKM" "ReliefFexpC" "ReliefFavgC" "ReliefFpe" "ReliefFpa" [19] "ReliefFsmp" "GainRatioCost" "DKMcost" "ReliefKukar" "MDLsmp" "ImpurityEuclid" [25] "ImpurityHellinger" "UniformDKM" "UniformGini" "UniformInf" "UniformAccuracy" "EqualDKM" [31] "EqualGini" "EqualInf" "EqualHellinger" "DistHellinger" "DistAUC" "DistAngle" [37] "DistEuclid" >

要用置換檢驗觀測到的Relief分值可以使用AppliedPredictiveModeling包中的permuteRelief()函數(shù)
重要性分值的置換分布非常有用,它能夠讓我們直觀的了解分值 的隨機性。(lattice::histogram())
標準化后的分值,其代表了觀測到Relief分值(無置換)離置換分布中心的距離與標注差的比值。

(2)繞封法(wrapper)
它按照一定規(guī)律不斷增加或者刪除變量,通過評估不同特征組合得到的模型擬合結果尋找能夠最優(yōu)化模型擬合的特征組合。
其本質是搜索算法,將不同的特征子集當作輸入,將模型評估結果作為需要優(yōu)化的輸出。
a.窮舉法:
通過窮舉得到所有可能的特征子集,然后找到優(yōu)化模型擬合的組合。
通過leap包中 regsubsets()函數(shù)進行窮舉變量選擇
該方法問題在于:要擬合和評估所有可能的特征子集,對稍微大一點的p來說計算量過大。同時這種方法也會導致統(tǒng)計問題,如過度擬合和參數(shù)估計的高方差。
b.向前選擇法(逐步回歸)
其從沒有特征的模型開始逐一加入特征,直到所有的特征都在模型當中。
當加入一個變量對模型提升有很大幫助時,就將該變量保留在模型中。
可以繼續(xù)使用regsubsets()函數(shù)進行向前選擇,只需要設置method=”forward”

c.向后選擇法(逐步回歸)
和向前選擇不同的是,向后選擇從含有所有p個特征的全模型開始,然后迭代逐一刪除最 無效的特征。
向后選擇評估的模型個數(shù)和向前選擇一樣,但它無法保證選出迭代模型是全局最優(yōu)的。
可以用regsubsets()函數(shù)進行向后選擇,需要設置method=”backward”

d.雙向選擇法(逐步回歸)
和向前選擇類似,模型從0個特征開始向模型里加特征,但不同的是,每次加入特征之后算法會重新評估模型,看是否有些特征可以移除。
R中的MASS包的函數(shù)stepAIC()可以根據(jù)AIC進行雙向選擇。
此外,基礎包中step()函數(shù)也可以用來進行向前,向后和雙向選擇。

(3)內嵌法(embedded)
它是將特征選擇的過程內嵌入建模的過程,它是學習器自身自主選擇特征,如Lasso,或者使用決策樹思想的方法。

總結

以上是生活随笔為你收集整理的R语言笔记之特征工程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。