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

歡迎訪問 默认站点!

默认站点

當(dāng)前位置: 首頁 >

r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

發(fā)布時間:2023/12/2 31 豆豆
默认站点 收集整理的這篇文章主要介紹了 r语言中正定矩阵由于误差不正定_R语言之数据处理(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在上一篇小文中,提到了關(guān)于R語言導(dǎo)入數(shù)據(jù)的一些方法,之后的重點就轉(zhuǎn)向了數(shù)據(jù)的處理上。數(shù)據(jù)處理其實在整個數(shù)據(jù)分析項目中所占用的時間是比較多的,所以根據(jù)處理的目的不同,也有不同的處理方法。在R語言中,我通常會將數(shù)據(jù)處理分成三部分:數(shù)據(jù)質(zhì)量處理、數(shù)據(jù)維度處理和特殊文本的處理。由于三個部分的內(nèi)容也比較多,就先介紹數(shù)據(jù)質(zhì)量處理的內(nèi)容,其余的兩部分會在后面的文章介紹。

一、數(shù)據(jù)清洗

數(shù)據(jù)清洗簡單說就是處理缺失值和異常值的判斷,當(dāng)然要根據(jù)實際情況來定義數(shù)據(jù)清洗的任務(wù)。

1.缺失值處理

當(dāng)我們面對的數(shù)據(jù)是比較大量的時候,就需要了解數(shù)據(jù)集中那些變量有缺失值、缺失的數(shù)量、屬于那種組合方式等有用信息。此時可以使用mice包中的md.pattern()函數(shù),該函數(shù)可生成一個以矩陣或者數(shù)據(jù)框形式展示缺失值模式的表格,且該函數(shù)只需要傳入需要判斷的數(shù)據(jù)即可。另外還有使用圖形方法這種更直觀的方法描述數(shù)據(jù)的缺失,可利用VIM包中的aggr()函數(shù)實現(xiàn),形式如下:

aggr(x,delimiter = NULL,plot = T,...)

x表示一個向量、矩陣或者數(shù)據(jù)框,delimiter用于區(qū)分插值補量,plot則指明是否畫圖。

識別出數(shù)據(jù)中的缺失值,接下來對其處理。最常用的方法是將包含缺失值的記錄刪去,使用na.omit()函數(shù),但僅限于出現(xiàn)缺失值的記錄數(shù)量比較少。但含缺失值的記錄很多時,就要考慮替換缺失值,一般可用均值、中位數(shù)和平均數(shù)替換,更專業(yè)一點的做法是使用插值法(將缺失數(shù)據(jù)的變量作為因變量,其他變量作為自變量,建立預(yù)測模型)

2.異常值的判斷與處理

異常值處理的重點在于識別,處理的手段和缺失值基本一致,所以下面主要介紹識別異常值的一些方法。3σ原則是使用比較多的方法,而R語言qc包中的qcc()函數(shù)是專業(yè)繪制質(zhì)量監(jiān)控圖的。初次之外,還可以利用箱線圖和聚類分析識別出異常值。


二、數(shù)據(jù)去重

數(shù)據(jù)去重并不是處理數(shù)據(jù)的必要步驟,所以單獨拿出來說。在R語言中去重的方法也很簡單,對于向量數(shù)據(jù)可使用unique()函數(shù),而針對矩陣或者數(shù)據(jù)框這種多維數(shù)據(jù)時,可使用duplicated()函數(shù)。


三、數(shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換的內(nèi)容簡單地可分為三部分,產(chǎn)生衍生變量、數(shù)據(jù)分箱和數(shù)據(jù)標(biāo)注化。衍生變量就是原有的變量屬性構(gòu)造新的屬性,比如變量A和變量B通過相乘得到變量C,另外比較常見的就是啞變量的構(gòu)成(可以使用caret包的dummyVars()函數(shù))。

數(shù)據(jù)分箱實際上就是按照屬性值劃分子區(qū)間,比如將考試成績0-59分的歸為不及格,60-89的歸為中等,90-100的歸為優(yōu)秀。R語言中分cut()函數(shù)可以實現(xiàn)數(shù)據(jù)分箱的目的。

數(shù)據(jù)標(biāo)準(zhǔn)化主要的目的就是消除變量之間的量綱影響,讓不同的變量經(jīng)過標(biāo)準(zhǔn)化后可以有平等分析和比較的基礎(chǔ)。常用的標(biāo)準(zhǔn)化有兩種,Min-Max標(biāo)準(zhǔn)化和Z-Score標(biāo)準(zhǔn)化,而caret包中的preProcess()函數(shù)能非常靈活地實現(xiàn)數(shù)據(jù)的標(biāo)注化。


四、數(shù)據(jù)抽樣

在數(shù)據(jù)分析或者建立數(shù)據(jù)模型之前,在面對或多或少的數(shù)據(jù)時,一般不會直接使用數(shù)據(jù),而是采用抽樣的方法去選取數(shù)據(jù),而根據(jù)不同的情況,會有不同的抽樣方法。下面介紹四種抽樣方法及其在R語言中的實現(xiàn):

  • 處理類失衡的抽樣方法——SMOTE
  • 類失衡會發(fā)生在包含分類變量的數(shù)據(jù)集,比如在整個數(shù)據(jù)集中,A類的數(shù)據(jù)占總體的5%,而B類數(shù)據(jù)占了95%。具體的理論可參考下面的連接:

    SMOTE算法?www.jianshu.com

    現(xiàn)在我們的關(guān)鍵在于如何使用R語言去解決類失衡的情況,比如A類數(shù)據(jù)有4000條記錄,B類數(shù)據(jù)只有200條記錄,此時可以使用DMwR包中的SMOTE()函數(shù)。

    2.隨機抽樣

    R語言中實現(xiàn)隨機抽樣的函數(shù)是sample(),基本形式如下:

    sample(x,size,replace=F/T,prob=NULL)

    x是數(shù)值型向量,size是抽樣個數(shù),replace表示是否放回,prob是與x長度一致的向量,且每個元素表示與x對應(yīng)位置上的元素被抽中的概率。

    如上面的命令,在1到5中隨機抽取3個元素,且每個元素被抽中的概率為0.1、0.2、0.5、0.4和0.3。

    3.等比抽樣

    當(dāng)面對多分類數(shù)據(jù)時,我們會采用等比抽樣的方法,實現(xiàn)快速得到與原始數(shù)據(jù)集有比例關(guān)系的抽樣數(shù)據(jù)。R語言中實現(xiàn)這一功能的是caret包中的createDataPartition()函數(shù),形式如下:

    createDataPartition(x,time,p,list=F/T,groups = min(5,length(x)))

    x是包含了多分類信息的向量,time表示需要進行抽樣的次數(shù),p表示需要從數(shù)據(jù)中抽取的樣本比例,list表示結(jié)果是否是為list形式,默認(rèn)為T,groups表示如果輸出變量是數(shù)值型數(shù)據(jù),則默認(rèn)按分位數(shù)分組進行取樣。以iris數(shù)據(jù)集為例,使用str()函數(shù)查看iris數(shù)據(jù)集的構(gòu)成:

    可以知道iris數(shù)據(jù)集中的Species變量是分類變量,且有3類元素。使用createDataPartition()函數(shù)進行抽樣。

    從結(jié)果可以看到三類的數(shù)據(jù)量是一樣的。

    4.交叉驗證的樣本抽取

    如果我們在建立模型時只采用一次抽樣的數(shù)據(jù),這樣得到的數(shù)據(jù)模型隨機性和誤差性是比較大的,因此使用N折交叉驗證的方法可以提高模型結(jié)果的可靠性。步驟大概是將數(shù)據(jù)集的每條記錄分配下標(biāo)1,2,...N個數(shù)據(jù),換言之就是將數(shù)據(jù)集分成了N份,然后,每次提取一份作為測試數(shù)據(jù)集,剩下的N-1份數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,然后記錄下擬合的N個模型結(jié)果和誤差,最后計算平均誤差來衡量模型的準(zhǔn)確性。對K折交叉驗證法原理不熟悉的伙伴,可以看以下的連接:

    K折交叉驗證?blog.csdn.net

    R語言中實現(xiàn)K折交叉驗證法,主要是使用caret包中的createFolds()和createMultiFolds()兩個函數(shù)。兩者的形式別如下:

    createFolds(x,k=10,list = T,returnTrain = F)

    x是要依據(jù)分類的變量,k指指定的折數(shù),默認(rèn)是10,list表示返回的結(jié)果索引值是否為列表形式,默認(rèn)為True,returnTrain表示是否返回抽樣的真實值,默認(rèn)Flase。

    createMultiFolds(x,k = 10,times = 5)

    x和k的參數(shù)意義與createFolds()一樣,times為指定抽樣組數(shù)。

    兩個函數(shù)都可是實現(xiàn)K折交叉驗證的抽樣,具體的使用方法可參照下面的連接:

    k折交叉驗證(R語言)?www.jianshu.com

    總結(jié)

    以上是默认站点為你收集整理的r语言中正定矩阵由于误差不正定_R语言之数据处理(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得默认站点網(wǎng)站內(nèi)容還不錯,歡迎將默认站点推薦給好友。