【数据挖掘】数据预处理
參考文獻:《Python數據分析與挖掘實戰(zhàn)》
數據清洗
數據清洗:刪除數據集中無關數據,重復數據,平滑噪聲數據,篩選掉與挖掘主題無關的數據,處理缺失值和異常值。
| 均值/中位數/眾數插補 | 按照屬性值的類型取值 |
| 使用固定值 | 用常量替換 |
| 最近臨插補 | 用缺失樣本最接近的樣本的屬性值 |
| 回歸方法 | 建立擬合模型預測缺失的屬性值 |
| 插值法 | 根據已有數據建立插值函數f(x)計算f(xi) |
拉格朗日插值法:
inputfile = '../data/catering_sale.xls' outputfile = '../data/sales.xls' data = pd.read_excel(inputfile) data[(data[u'銷量'] < 400) | (data[u'銷量'] > 5000)] = None def ployinterp_column(index, df, k=5):y = df[list(range(index - k, index)) + list(range(index + 1, index + 1 + k))]y = y[y.notnull()]return lagrange(y.index, list(y))(index) df = data[data[u'銷量'].isnull()] index_list = df[u'銷量'].index for index in index_list:data[[u'銷量']][index] = ployinterp_column(index, data[u'銷量']) data.to_excel(outputfile)數據集成
將多個數據源合并在一個一致的數據存儲的過程(冗余屬性識別、實體識別)
數據變換
對數據進行規(guī)范化處理,轉化為適當的形式
(1) 簡單函數變化:將不具有正態(tài)分布的數據變換成具有正態(tài)分布的數據。在時間序列分析中,簡單的對數變換或者差分運算可以將非平穩(wěn)序列轉換為平穩(wěn)序列。使用對數變換還可以對數據進行壓縮。
(2) 規(guī)范化:也稱歸一化,消除指標之間的量綱和取值范圍差異的影響進行標準化處理,將數據按比例縮放,使其在一個特定范圍,便于綜合分析。
最大-最小規(guī)范化:x?=x?minmax?minx^*=\frac{x-min}{max-min}x?=max?minx?min?
零-均值規(guī)范化:x?=x?xˉσx^*=\frac{x-\bar{x}}{\sigma}x?=σx?xˉ?
小數定標規(guī)范化:x?=x10kx^*=\frac{x}{10^k}x?=10kx?
(3) 連續(xù)屬性離散化
等寬法:將屬性的值域劃分為等寬的區(qū)間。
等頻法:將相同數量的記錄放在一個區(qū)間。
聚類法:將連續(xù)屬性進行聚類,對聚類得到的簇進行處理,需要指定簇的個數,得到區(qū)間數。
(4) 屬性構造:從已有屬性集中構造出新屬性,加入到現有的屬性集合中。
inputfile = "../data/electricity_data.xls" outputfile = "../tmp/electricity_data.xls" data = pd.read_excel(inputfile) data[u"線損率"] = (data[u"供入電量"] - data[u"供出電量"]) / data[u"供入電量"] data.to_excel(outputfile, index=False)(5) 小波變換:在時域和頻域具有表征信號局部特征的能力,通過伸縮和平移
數據規(guī)約
意義:降低無效、錯誤數據對建模的影響,提高建模的準確性。少量且具有代表性的數據將大幅度縮減挖掘所需的時間。降低儲存數據的成本。
| 合并屬性 | 舊屬性合并為新屬性 |
| 逐步向前選擇 | 從空屬性集開始添加當前最優(yōu)屬性,直到無法選出最優(yōu)屬性或滿足閾值約束 |
| 逐步向后選擇 | 從全屬性集開始刪除最差屬性,直到無法選出最差屬性或滿足閾值約束 |
| 決策樹歸納 | 利用決策樹歸納法學習初始數據,刪除沒有在決策樹上的屬性 |
| 主成分分析 | 用較少的變量解釋原始數據中大部分的變量 |
數值規(guī)約
總結
以上是生活随笔為你收集整理的【数据挖掘】数据预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android官方开发文档Trainin
- 下一篇: 如何看待事理图谱版magi--学迹