導航:首頁 > 數據行情 > 股票缺失值數據預處理

股票缺失值數據預處理

發布時間:2023-05-31 04:13:50

『壹』 股價數據缺失,用什麼插值法補齊較好

meigushe888

將這些錯誤的數據當錯缺失數據處理,需要採取一定的手段填充。缺失的數據採取插值法填充,這一點早就確定下來,但在如何實現上卻困擾很久。將原始問題簡化一下。比如有這樣一組數據。ID so co1 1 0.1 0.1 2 0 0.2 3 0.2 0 4 0 0 5 0 0.4 6 0.1 0.5插值法計算方法如下:(也可以不使用這兩個步驟,只要最後的結果一致就行) 步驟一:計算缺失值上下的已知值間的斜率: k = (b2 - b1)/(n + 1) n 為缺失數據的個數 步驟二:計算對應的缺失值 a(i) = b1 + k * i 經過處理後,得到的數據是這樣的:1 0.10 0.102 0.15 0.203 0.20 0.274 0.17 0.335 0.13 0.406 0.10 0.50我最初的想法是:在sql語句中用for循環來做。逐條地檢查每個數值,如果是0,那麼獲取它的前一個記錄的值b1,然後再繼續向後遍歷,獲取後面一個非0的值b2,計算這兩個非0數據之間的距離n,之後再用插值法將缺失的數據計算出來,並update到b1和b2之間的每一個值。按照這個思路,很麻煩,比如遍歷過程中如何獲取前一個數值?出現0的時候,如何記錄出現多少個0?for循環經過後,再如何update之前的數值? 被這些問題困擾很久!在論壇上發帖解決,解決的辦法很受啟發。1. 創建一個函數ALTER FUNCTION FUN_CO(@ID INT) RETURNS DECIMAL(18, 3) AS BEGIN DECLARE @NUM1 NUMERIC(19,2),@ID1 INT,@NUM2 NUMERIC(19,2),@ID2 INT SELECT TOP 1 @ID1=ID , @NUM1=CO FROM APRECORD WHERE ID<=@ID AND CO<>0 ORDER BY ID DESC SELECT TOP 1 @ID2=ID , @NUM2=CO FROM APRECORD WHERE ID>=@ID AND CO<>0 ORDER BY ID ASC IF @ID2<>@ID1 RETURN @NUM1+(((@NUM2-@NUM1)/(@ID2-@ID1))*(@ID-@ID1)) RETURN @NUM1 END2. 更新資料庫UPDATE APRECORD SET CO=DBO.FUN_CO(ID) WHERE DAYTIME >= @BDT AND DAYTIME < @EDT 在這個解決方案中,首先查找到缺失的數據,也就是值為0的數據,然後向前查找非0數據@NUM1,以及它的編號@ID1,向後查找非0的數據@NUM2. 以及編號@ID2。也就是步驟一。然後用公式計算出填充的數據。將上述過程保存在一個函數中,在存儲過程中調用。甚至不用for循環之類。

『貳』 數據預處理-缺失值

在數據清洗過程種,主要處理的是缺失值、異常值和重復值。所謂清洗,是對數據進行丟棄、填充、替換、去重等操作,實現去除異常、糾正錯誤、補足缺失的目的。

不適用採取丟棄的場景:數據集總體中存在大量的數據記錄不完整情況且比例較大,例如超過10%。刪除這些帶有缺失值的記錄悄信意味著將會損失過多有用信息。或者帶有缺失值的數據記錄大量存在著明顯的數據分布規律或者特徵,例如帶有缺失值的數據記錄的目標標簽主要集中在某一類或者幾類,如果刪除會使對應分類的數據樣本丟失大量特徵信息,導致模型過擬合或者分類不準確。

2.1:統啟悔輪計法:使用均值、加權均值、中位數等方法補足;對於分類數據,使用類別眾數最多的值補足。
2.2:模型法:更多時候我們會基於已有的其他欄位,將缺失欄位作為目標變數進行預測,從而得到最為可能的補全值。
2.3:專家補全
2.4:隨機法,特殊值法,多重填補等。

轉換前:性別(男,前盯女,未知)
轉換後:性別 男(值域1,0) 性別 女(值域1,0),性別未知(值域1,0)
將一個變數變為3個變數。

常見的能夠自動處理缺失值的模型包括:KNN,決策樹和隨機森林,神經網路和樸素貝葉斯,DBSCAN等。
忽略,缺失值不參與距離計算,例如KNN。
將缺失值作為分布的一種狀態,並參與到建模過程,例如決策樹。
不基於距離做計算,因此基於值得距離做計算,本身得影響就消除,例如DBSCAN.
對於缺失值得處理思路是先通過一定方法找到缺失值,然後分析缺失值在整個樣本中的分布佔比以及缺失值是否具有顯著的無規律分布特徵,然後考慮後續要使用的模型是否滿足缺失值自動處理,最後決定採用哪種缺失值處理方法。

『叄』 數據分析:數據預處理--缺失值處理(三)

上一篇 數據分析:數據納握梁預處理--標准化方法優劣了解(二) 講了兩類常用標准化方法,但沒涉及到如何處理缺失數據。更多知識分享請到 https://zouhua.top/

全局校正(global adjustment)標准化是蛋白質組學中常用的洞運方法之一,它將log化的intensity數據的中心轉換成一個常數,這個常數可以是mean、median或者其它數學測量指標。比如Zscore就是將數據中心的mean轉換成常數0,且standard variation為1的標准化方法。雖然不全局校正標准化能夠有效校正樣本間的差異,但不能處理如非線性的偏差。

Robust scatter plot smoothing 或 lowess regression是另一類標准化方法,limma包的voom函數就使用了該方法。通過線性回歸的殘差擬合曲線,然後計算每個feature對應的權重值,這作為標准化結果。

蛋白質組的質譜數據的特點是缺失值特別多,產生皮宏缺失值的原因有好多:

處理的缺失值的策略有:

缺失值分類:

缺失值到底是符合MCAR還是censored data呢,可以通過概率模型判斷。可閱讀文獻 A statistical framework for protein quantitation in bottom-up MS-based proteomics 或 Bayesian analysis of iTRAQ data with nonrandom missingness: identification of differentially expressed proteins 。

**Notes: ** 從1st和3rd分位數能看出KNN的補缺效果還不錯,但也看到Sepal.Length的最小值補缺前後差距較大。

『肆』 數據預處理的流程是什麼

數據預處理的流程可沒知扒以概括為以下步驟:
1、數據採集和收集:收集各種數據資源,包括資料庫、文件、API介面、感測器等。
2、數據清洗:去除不猛滑完整、不準確、重枯昌復或無關的數據,填補缺失值,處理異常值。
3、數據集成:將來自不同數據源的數據進行整合和合並,消除重復和不一致的數據。
4、數據轉換:將數據進行歸一化、標准化、離散化等轉換操作,以便更好地支持數據分析和建模。
5、數據規約:對數據進行壓縮、抽樣、特徵選擇等處理,以便更好地支持數據分析和建模。
6、數據可視化:通過圖形化方式展示數據,以便更好地理解和分析數據。

『伍』 數據預處理的流程是什麼

數據預處理的常用流程為:去除唯一屬性、處理缺失值、屬性編碼、數據標准化正則化、特徵選擇、主成分分析。
去除唯一屬性
唯一屬性通常是一些id屬性,這些屬性並不能刻畫樣本自身的分布規律,所以簡單地刪除這些屬性即可。

處理缺失值
缺失值處理的三種方法:直接使用含有缺失值的特徵;刪除含有缺失值的特徵(該方法在包含缺失值的屬性含有大量缺失值而僅僅包含極少量有效值時是有效的);缺失值補全。

常見的缺失值補全方法:均值插補、同類均值插補、建模預測、高維映射、多重插補、極大似然估計、壓縮感知和矩陣補全。

(1)均值插補

如果樣本屬性的距離是可度量的,則使用該屬性有效值的平均值來插補缺失的值;

如果的距離是不可度量的,則使用該屬性有效值的眾數來插補缺失的值。如果使用眾數插補,出現數據傾斜會造成什麼影響?

(2)同類均值插補

首先將樣本進行分類,然後以該類中樣本的均值來插補缺失值。

(3)建模預測

將缺失的屬性作為預測目標來預測,將數據集按照是否含有特定屬性的缺失值分為兩類,利用現有的機器學習演算法對待預測數據集的缺失值進行預測。

該方法的根本的缺陷是如果其他屬性和缺失屬性無關,則預測的結果毫無意義;但是亮神激若預測結果相當准確,則說明這個缺失屬性是沒必要納入數據集中的;一般的情況是介於兩者之間。

(4)高維映射

將屬性映射到高維空間,採用獨熱碼編碼(one-hot)技術。將包含K個離散取值范圍的屬性值擴展為K+1個屬性值,若該屬性值缺失,則擴展後的第K+1個屬性值置為1。

這種做法是最精確的做法,保留了所有的信息,也未添加任何額外信息,若預處理時把所有的變數都這樣處理,會大大增加數據的維度。這樣做的好處是完整保留了原始數敬襪據的全部信息、不用考慮缺失值;缺點是計算量大大提升,且只有在樣本量非常大的時候效果才好。
(5)多重插補(MultipleImputation,MI)

多重插補認為待插補的值是隨機的,實踐上通常是估計出待插補的值,再加上不同的雜訊,形成多瞎宴組可選插補值,根據某種選擇依據,選取最合適的插補值。

(6)壓縮感知和矩陣補全

(7)手動插補

插補處理只是將未知值補以我們的主觀估計值,不一定完全符合客觀事實。在許多情況下,根據對所在領域的理解,手動對缺失值進行插補的效果會更好。

『陸』 對於缺失值的處理

建議:不同場景下的數據缺失機制不同,這需要工程師基於對業務選擇合適的填充方法。

如何判斷缺失值類型?
缺失值的分類按照數據缺失機制可分為:
可忽略的缺失

不可忽略的缺失

平常工作中遇到的缺失值大部分情況下是隨機的(缺失變數和其他變數有關)

這個就可以用estimator來做了,選其中一個變數(y),然後用其他變數作為X,隨便選個值填充X的缺失部分,用X train一個estimator,再預測y的缺失部分(大致思路)

此外有些數據是符合某種分布的,利用這個分布呢也可以填充缺失的數據,如(EM演算法)

處理缺失數據的三個標准:
1. 非偏置的參數估計
不管你估計means, regressions或者是odds ratios,都希望參數估計可以准確代表真實的總體參數。在統計項中,這意味著估計需要是無偏的。有缺失值可能會影響無偏估計,所以需要處理。
2. 有效的能力:
刪除缺失數據會降低采樣的大小,因此會降低power。如果說問題是無偏的,那麼得到的結果會是顯著的,那麼會有足夠的能力來檢驗這個效力(have adequate power to detect your effects)。反之,整個檢測可能失效。
3. 准確的標准差(影響p值和置信區間):
不僅需要參數估計無偏,還需要標准差估計准確,在統計推斷中才會有效。

缺失值處理的方法大致分為這幾類:1、刪除法;2、基於插補的方法;3、基於模型的方法; 4、不處理; 5、映射高維

有些處理方法是基於完全隨機缺失假設(MCAR),一般來說,當數據不是 MCAR 而 是隨機缺失(MAR)時,這些方法是不適用的;而有些方法(如似然估計法)在 MAR 的假設下是適用的,因此,在進行缺失數據處理時,首先需要認真分析缺失數 據產生的原因,然後採取有針對性的補救措施,這樣才能夠獲得無偏或弱偏估計。

此處關於使用多重插補來處理非隨機缺失(MNAR)的問題,它其實效果不一定,也可能出現效果倒退的情況,總的說多重更適合MAR

註:此處一元與多元指的是僅有一個特徵有缺失值與多個特徵有缺失值

對於不同類別的缺失值的處理方法如上圖。

以下展開介紹各個方法:

註: k-means插補 與KNN插補很相似,區別在於k-means是利用無缺失值的特徵來尋找最近的N個點,然後用這N個點的我們所需的缺失的特徵平均值來填充,而KNN則是先用均值填充缺失值再找最近的N個點。

類似的還有 隨機回歸插補 :也優於純回歸插補

其他單一插補法:

與單一插補方法相比較,多重插補方法充分地考慮了數據的不確定性。多重插補的主要分為三個步驟,綜合起來即為:插補、分析、合並。插補步是為每個缺失值都構造出 m 個可能的插補值,缺失模型具有不確定性,這些插補值能體現出模型的這個性質,利用這些可能插補值對缺失值進行插補就得到了 m 個完整數據集。分析步是對插補後的 m 個完整數據集使用一樣的統計數據分析方法進行分析,同時得到 m 個統計結果。綜合步就是把得到的這 m 個統計結果綜合起來得到的分析結果,把這個分析結果作為缺失值的替代值。多重插補構造多個插補值主要是通過模擬的方式對估計量的分布進行推測,然後採用不同的模型對缺失值進行插補,這種插補是隨機抽取的方式,這樣以來能提高估計的有效性和可靠性。
多重插補-python手冊

多重插補法主要有以下幾種:

(使用回歸、貝葉斯、隨機森林、決策樹等模型對缺失數據進行預測。)

基於已有的其他欄位,將缺失欄位作為目標變數進行預測,從而得到較為可能的補全值。如果帶有缺失值的列是數值變數,採用回歸模型補全;如果是分類變數,則採用分類模型補全。

常見能夠自動處理缺失值模型包括:KNN、決策樹和隨機森林、神經網路和樸素貝葉斯、DBSCAN(基於密度的帶有雜訊的空間聚類)等。

處理思路:
自動插補 :例如XGBoost會通過training loss rection來學習並找到最佳插補值。
忽略 :缺失值不參與距離計算,例如:KNN,LightGBM
將缺失值作為分布的一種狀態 :並參與到建模過程,例如:決策樹以及變體。
不基於距離做計算 :因此基於值得距離計算本身的影響就消除了,例如:DBSCAN。

ID3、c4.5、cart、rf到底是如何處理缺失值的?

最精確的做法,把變數映射到高維空間。
比如性別,有男、女缺失三種情況,則映射成3個變數:是否男、否女、是否缺失。連續型變數也可以這樣處理。比如Google、 網路的CTR預估模型,預處理時會把所有變數都這樣處理,達到幾億維。又或者可根據每個值的頻數,將頻數較小的值歸為一類'other',降低維度。此做法可最大化保留變數的信息。

前推法 (LOCF,Last Observation Carried Forward,將每個缺失值替換為缺失之前的最後一次觀測值)與 後推法 (NOCB,Next Observation Carried Backward,與LOCF方向相反——使用缺失值後面的觀測值進行填補)

這是分析可能缺少後續觀測值的縱向重復測量數據的常用方法。縱向數據在不同時間點跟蹤同一樣本。當數據具有明顯的趨勢時,這兩種方法都可能在分析中引入偏差,表現不佳。

線性插值 。此方法適用於具有某些趨勢但並非季節性數據的時間序列。

季節性調整+線性插值 。此方法適用於具有趨勢與季節性的數據。

總而言之,大部分數據挖掘的預處理都會使用比較方便的方法來處理缺失值,比如均值法,但是效果上並不一定好,因此還是需要根據不同的需要選擇合適的方法,並沒有一個解決所有問題的萬能方法。

具體的方法採用還需要考慮多個方面的:

在做數據預處理時,要多嘗試幾種填充方法,選擇表現最佳的即可。

總結來說,沒有一個最完美的策略,每個策略都會更適用於某些數據集和數據類型,但再另一些數據集上表現很差。雖然有一些規則能幫助你決定選用哪一種策略,但除此之外,你還應該嘗試不同的方法,來找到最適用於你的數據集的插補策略。

當前最流行的方法應該是 刪除法、KNN、多重插補法

參考文獻: 龐新生. 缺失數據處理方法的比較[J]. 統計與決策, 2010(24):152-155.

『柒』 數據預處理

在數據挖掘中,海量的原始數據中存在大量不完整(有缺失值)、不一致、有異常的數據,會嚴重影響到數據挖掘建模的執行效果,甚至會導致挖掘結果的偏差,進而數據清洗就變得尤為重要。在數據清洗完成後接著甚至同時進行數據集成、變換、規約等一系列的處理,而整個過程稱之為 數據預處理 。在整個數據挖掘過程中,數據預處理工作大致占據整個過程的 60%
一般來說,數據預處理的主要包括如下內容: 數據清洗、數據集成、數據變換、數據規約。
接下來的內容,我們也是櫻碰從這幾方面闡述。

常見的缺失值處理方法: 刪除法、替換法、插補法等
(1)、刪除法: 最簡單的缺失值處理方法。從不同角度進行數據處理劃分:

<code>
缺失值的處理
inputfile$date=as.numeric(inputfile$date)#將日期轉換成數值型變數
sub=which(is.na(inputfile$sales))#識別缺失值所在行數
inputfile1=inputfile[-sub,]#將數據集分成完整數據和缺失數據兩部分
inputfile2=inputfile[sub,]
行刪除法處理缺失,結果轉存
result1=inputfile1
</code>
(2)、替換法
一般根據屬性將變數分:數值型和非數值型

在數據挖掘過程中,可能會存在數據分布在不同的數據源中,而這個時候需要將多個數據源合並存放在一個一致的數據存儲(如數據倉庫),整個過程稱之為 數據集成

數據倉庫:
關於數據倉庫構思
漫談數據倉庫之維度建模
漫談數據倉庫之拉鏈表(原理、設計以及在Hive中的實現)

在R中,通過將存儲在兩個數據框中的數據以關鍵字為依據,以行為單位做列向合並,直渣裂接通過merge()函數完成。
merge(數據框1,數據框2,by="關鍵字"),而合並後的新數據自動按照關鍵字取值大小升序排列。不過在數據集成過程中存在表達形式不一樣,導致不能直接完成匹配,就需要我們進行加以轉換、提煉、集成等操作。具體從如下幾方面:
(1)、實體識別
從不同數據源識別出現如頌閉實世界的實體,來完成統一不同源的數據矛盾之處。

實體識別承擔著檢測和解決這些沖突的任務

(2)、冗餘屬性識別

數據變換主要對數據進行規范化處理、連續變數的離散化以及屬性屬性的構造,將數據轉換成「適當的」形式,來滿足挖掘任務及演算法的需要。
(1)、簡單函數變換
對原始數據進行某些數學函數變換,常見平方、開方、取對數、差分運算等等
主要來完成不具有正態分布變換服從正態分布;非平穩序列變為平穩序列等等
(2)、數據規范化
為了清除指標之間的量綱和取值范圍差異的影響,需要進行標准化處理,將數據按照比例進行縮放,使之落入一個特定區域,便於進行綜合分析。
常見方法如下:

<code>
讀取數據
data=read.csv('./data/normalization_data.csv',he=F)
最小-最大規范化
b1=(data[,1]-min(data[,1]))/(max(data[,1])-min(data[,1]))
b2=(data[,2]-min(data[,2]))/(max(data[,2])-min(data[,2]))
b3=(data[,3]-min(data[,3]))/(max(data[,3])-min(data[,3]))
b4=(data[,4]-min(data[,4]))/(max(data[,4])-min(data[,4]))
data_scatter=cbind(b1,b2,b3,b4)
零-均值規范化
data_zscore=scale(data)
小數定標規范化
i1=ceiling(log(max(abs(data[,1])),10))#小數定標的指數
c1=data[,1]/10^i1
i2=ceiling(log(max(abs(data[,2])),10))
c2=data[,2]/10^i2
i3=ceiling(log(max(abs(data[,3])),10))
c3=data[,3]/10^i3
i4=ceiling(log(max(abs(data[,4])),10))
c4=data[,4]/10^i4
data_dot=cbind(c1,c2,c3,c4)
</code>

(3)、連續屬性離散化
在數據的取值范圍內設定若干個離散的劃分點,將取值范圍劃分為不同的離散化的區間,最後使用不同的符號或數值代表落在不同區間的數據值。
常見離散方法:

(4)、屬性構造
利用已有的屬性構造出新的屬性
(5)、小波變換(本次不進行闡述)

數據規約在大數據集上產生更小的且保持原數據完整性的新數據集,提升在數據集合上進行分析和挖掘的效率。
意義如下:

『捌』 數據預處理的缺失值

    1.1 缺失值

            很多比賽和實際項目中,常常有欄位缺失值很多但是有不能舍棄欄位的情況,因此數據預處理中非常重要的一項就是處理缺失值。

    1.2 impute.SimpleImputer

 calss sklearn.impute.SimpleImputer(missing_valued=nan,strategy='mean', fill_value=None, verboser=0,=True)

    1.3 使用impute.SimpleImputer填充缺失值

    1.4 使用pandas和numpy進行填充更簡單

     1.5 使用隨機森林進行填充缺失值,通常在比賽中,不能填充test中數據集,至於train中數據集可以自行考慮要不要填充。下面使用隨機森林回歸進行說明。

      使用隨機森林回歸填充缺失值:任何回歸都是從特徵矩陣中學習然後求解連續型標簽y的過程,之所以能實現這個過程,是因為回歸演算法認為特徵矩陣和標簽存在某種聯系,實際上,標簽和特徵是可以相互轉化的,比如說,可以用一個地區、環境,附近學校數量預測房價的問題中,我們也可以反過來,用環境,附近學校數量,房價來預測地區,而回歸填充缺失值就是利用了這種思想。

        對於一個有N個特徵頃坦的數據來說,其中特徵T有缺失值,我們可以把鄭派特徵T當做標簽,其餘N-1個特徵和原本的標簽組成新的特徵矩陣。對於T來說,它沒有缺失值的部分就是train,這部分數據既有標簽也有特徵,而她缺失值的部分只有特徵沒有標簽,就是我們需要預測的部分。

        特徵T不缺失的值對應的其他n-1個特徵+原本的標簽:X_train

        特徵T不缺失的值:Y_train

   喊乎賀     特徵T缺失的值對應的其他n-1個特徵+原本的標簽:X_test

        特徵T缺失的值:Y_test

        對於某一個特徵大量缺失,其他特徵卻很完整的情況下,非常適合用隨機森林填充。

        如果數據中除了T特徵之外,還有其他特徵缺失怎麼辦呢?遍歷所有的特徵,從缺失值最少的開始進行填充(因為缺失值最少的特徵所需要的准確信息最少),填充一個特徵時,先將其他特徵的缺失值用0代替,每完成一次回歸預測,就將預測值放到原本的特徵矩陣中,再繼續填充下一個特徵。每填充一次缺失值的特徵就會少一個,每次循環後,需要用0填充的特徵就越來越少,當進行到最後一個特徵的時候(缺失值最多的特徵),已經沒有需要用0來填充的特徵了,遍歷所有特徵會後,數據就完整了,不再有缺失值。

『玖』 數據的預處理之缺失值處理

工作是基於3種缺失值機制告皮來識別缺失模式:

MCAR(完全隨機丟失):如果數據的缺失與任何值(觀察或缺失)之間沒有關系,則為MCAR。

MAR(叢戚半隨機丟失):您必須考慮MAR與MCAR有何不同, 如果缺失和觀測值之間存在系統關系,則為MAR。例如-男性比女性更容易告訴您自己的體重,因此體重就滲友陵是MAR。「 Weight」變數的缺失取決於變數「 Sex」的觀測值。

MNAR(不隨機丟失):如果2個或更多變數的缺失具有相同模式,則為MNAR。

閱讀全文

與股票缺失值數據預處理相關的資料

熱點內容
股票漲停了怎麼買得出 瀏覽:639
股票在哪裡看歷史數據 瀏覽:884
3分鍾漲停的股票了 瀏覽:911
員工限制性股票激勵解禁時間 瀏覽:516
北京掌閱科技股份有限公司股票 瀏覽:997
中國天然資源股票成交額 瀏覽:341
什麼是股票資金進出 瀏覽:270
中國核電股票同花順手機版 瀏覽:90
證券股銀行股為什麼股票凈值很高 瀏覽:751
股票影響因素案例 瀏覽:223
預警漲幅大於3的股票怎麼設 瀏覽:33
股票現金分紅收稅嗎 瀏覽:946
股票年日線數據是什麼 瀏覽:851
中國被制裁什麼股票是利好 瀏覽:31
中國股票值得投資的企業 瀏覽:491
慈星股票最新消息 瀏覽:905
股票賣出後資金到賬 瀏覽:473
中國核電股票為什麼就是個躍 瀏覽:381
股票在低位集合競價時漲停是什麼意思 瀏覽:943
2017年阿里巴巴股票長期持有好 瀏覽:736