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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言特征提取与特征选择

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

“數(shù)據(jù)決定了機(jī)器學(xué)習(xí)的上限,而算法只是盡可能逼近這個(gè)上限”,這里的數(shù)據(jù)指的就是經(jīng)過特征工程得到的數(shù)據(jù)。特征工程指的是把原始數(shù)據(jù)轉(zhuǎn)變?yōu)槟P偷挠?xùn)練數(shù)據(jù)的過程,它的目的就是獲取更好的訓(xùn)練數(shù)據(jù)特征,使得機(jī)器學(xué)習(xí)模型逼近這個(gè)上限。特征工程能使得模型的性能得到提升,有時(shí)甚至在簡(jiǎn)單的模型上也能取得不錯(cuò)的效果。
特征工程在機(jī)器學(xué)習(xí)中占有非常重要的作用,一般認(rèn)為括特征構(gòu)建、特征提取、特征選擇三個(gè)部分。特征構(gòu)建比較麻煩,需要一定的經(jīng)驗(yàn)。 特征提取與特征選擇都是為了從原始特征中找出最有效的特征。它們之間的區(qū)別是特征提取強(qiáng)調(diào)通過特征轉(zhuǎn)換的方式得到一組具有明顯物理或統(tǒng)計(jì)意義的特征;而特征選擇是從特征集合中挑選一組具有明顯物理或統(tǒng)計(jì)意義的特征子集。兩者都能幫助減少特征的維度、數(shù)據(jù)冗余,特征提取有時(shí)能發(fā)現(xiàn)更有意義的特征屬性,特征選擇的過程經(jīng)常能表示出每個(gè)特征的重要性對(duì)于模型構(gòu)建的重要性。簡(jiǎn)單來說,特征構(gòu)建是升維的過程,特征提取和特征選擇是獎(jiǎng)為的過程。

常用的特征選擇方法大致可以分為三類:過濾式(filter)、包裹式(wrapper)和嵌入式(embedding)。這里主要選用filter過濾法來篩選變量。

在此,應(yīng)用mlr包進(jìn)行特征選擇,如對(duì)變量重要性排序等操作,首先是通過makeClassifTask()創(chuàng)建一個(gè)用于分類的Task,其他回歸等目的有相應(yīng)的創(chuàng)建函數(shù)。通過removeConstantFeatures()函數(shù)丟棄零變量,gener ateFilterValuesData()函數(shù)可選擇相應(yīng)的method進(jìn)行特征重要性排序(這里運(yùn)用信息增益衡量),并可繪圖實(shí)現(xiàn)。

(1)方差選擇法
通過特征本身的方差來篩選特征的類。算各個(gè)特征的方差,然后根據(jù)閾值,選擇方差大于閾值的特征。

#install.packages('mlr') library(mlr) # 創(chuàng)建task names(df3) train.task <- makeClassifTask(data = df5, target = "label") # 查看變量選擇可選方法listFilterMethods() # 選擇計(jì)算方差,進(jìn)行特征選擇 var_imp <- generateFilterValuesData(train.task, method = "variance", nselect =3) var_imp plotFilterValues(var_imp, feat.type.cols = TRUE, n.show = 40) result_var_imp<-var_imp[["data"]] write.csv(result_var_imp, './result_var_imp.csv') # 寫出數(shù)據(jù)# 對(duì)衡量特征指標(biāo)進(jìn)行繪圖 plotFilterValues(var_imp, feat.type.cols = TRUE, n.show = 30)

(2)相關(guān)系數(shù)法
計(jì)算各個(gè)特征對(duì)目標(biāo)值的相關(guān)系數(shù)以及相關(guān)系數(shù)的P值。從圖6.6可以看出,通過該方法算出的特征偏向于交易次數(shù)。

library(mlr) train.task <- makeRegrTask(data = df2, target = "label") # 選擇pearson相關(guān)系數(shù),進(jìn)行特征選擇 也可以選擇秩相關(guān)系數(shù)(method =# rank.correlation) var_imp2 <- generateFilterValuesData(train.task, method = "linear.correlation") plotFilterValues(var_imp2, feat.type.cols = TRUE, n.show = 30) # 對(duì)相關(guān)系數(shù)進(jìn)行繪圖 library(corrplot) corrplot(cor(df2), order = "hclust")

(3)卡方檢驗(yàn)
經(jīng)典的卡方檢驗(yàn)是檢驗(yàn)定性自變量對(duì)定性因變量的相關(guān)性,考慮自變量等于i且因變量等于j的樣本頻數(shù)的觀察值與期望的差距,這個(gè)統(tǒng)計(jì)量的含義簡(jiǎn)而言之就是自變量對(duì)因變量的相關(guān)性。

train.task <- makeClassifTask(data = df2, target = "label") # 選擇計(jì)算卡方值,進(jìn)行特征選擇 var_imp3 <- generateFilterValuesData(train.task, method = "chi.squared") # 對(duì)衡量特征指標(biāo)進(jìn)行繪圖 plotFilterValues(var_imp3, feat.type.cols = TRUE) var_imp_chi<-var_imp3[["data"]] write.csv(var_imp_chi, './data/var_imp_chi.csv')


(4)互信息法
經(jīng)典的互信息也是評(píng)價(jià)定性自變量對(duì)定性因變量的相關(guān)性的,可以看成是一個(gè)隨機(jī)變量中包含的關(guān)于另一個(gè)隨機(jī)變量的信息量。

train.task <- makeClassifTask(data = df2, target = "label") # 查看變量選擇可選方法 listFilterMethods()# 選擇計(jì)算信息增益,進(jìn)行特征選擇 var_imp4 <- generateFilterValuesData(train.task, method = ""FSelector_information.gain"") var_imp4 # 對(duì)衡量特征指標(biāo)進(jìn)行繪圖 plotFilterValues(var_imp4, feat.type.cols = TRUE)

參考的大佬文章:
https://zhuanlan.zhihu.com/p/25732304

總結(jié)

以上是生活随笔為你收集整理的R语言特征提取与特征选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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