數據變換

數據的變換算法

  • 數據變換主要是對數據進行規範化處理,將數據轉換成"適當的"形式,以適用於挖掘任務及算法的需求.
  • 簡單的函數變換:是對原始數據進行某些函數變換,經常使用的變換包括平方,開方,取對數,差分運算等
  • 簡單的函數變換經常使用來將不具備正太分佈的數據變換成具備正太分佈的數據.在時間序列分析中,有時簡單的對數變換或者差分運算就能夠將非平穩序列轉換成平穩序列,在數據挖掘中,簡單的函數變換可能更有必要,好比我的年收入的取值範圍10000元到10億元,這是一個很大的區間,使用對數變換對其進行壓縮是經常使用的一種變換處理方法.
  • 規範化
    • 數據規範化(歸一化)吹數據是數據挖掘的一箱基礎工做,不一樣的評價指標每每具備不一樣的量綱,數據間差異可能很大,不進行處理可能會影響到數據處理的結果,爲了消除指標間的量綱和取值範圍差別的影響,,須要進行標準化處理,將數據按照比例進行縮放,使之落入一個特定的區域,便於進行綜合分析.
  • 數據規範化對於基於距離的挖掘算法尤其重要
    • 最小-最大規範化
      • 最小-最大化也稱爲離差標準化,是對原始數據的線性變化,將數值映射到[0.1]之間,其轉換公式以下:
      • 其中,max爲樣本數據的最大化,min爲樣本數據的最小值,max-min爲極差.離差標準化保留了原來數據中存在的關係,是消除量綱和數據取值範圍影響最簡單方法.這種方法的缺點是若數值集中且某個數值很大,則規範化後各值會接近於0,而且將會相差不大.若未來遇到超過目前屬性[min,max]取值範圍,會引發系統出錯,須要從新肯定min和max
    • 零-均值規範化
      • 零-均值規範化也稱標準差標準化,通過處理的數據均值爲0,標準差爲1,轉化公式爲:
      • 其中分母爲原始數據的標準差,分子爲每個數據與均值的差,這一方法是當前用的最多的數據標準化方法.
    • 小數定標規範化
      • 經過移動屬性值的小數位數,將屬性值映射到[-1,1]之間,移動的小數位取決於屬性值絕對值的最大值.其公式以下
  • 連續屬性離散化
      • 一些數據挖掘的算法,特別是某些分類算法(如ID3算法,Apriori算法等),要求數據是分類屬性形式,這樣,經常須要將連續屬性變換成分類屬性,即連續屬性離散化.
      • 離散化的過程:
        • 連續離散化就是再數據的取值範圍內設定若干離散的劃分點,將取值範圍劃分爲一些離散化區間,最後用不一樣的符號或整數值表明落在每一個子區間中的數據值.因此離散化涉及兩個子任務:肯定分類以及如何將連續屬性值映射到這些分類值
      • 經常使用的離散化方法
        • 經常使用的離散化方法又等寬法,等頻法,基於聚類分析的方法
        1. 等寬法:
          1. 將屬性的值域分紅具備等寬的區間,區間的個數數據自己的特色決定,或者由用戶指定,相似於製做頻率分佈表
        2. 等頻法:
          1. 將相同數量的記錄放進每一個區間
          2. 這兩種方法簡單,易於操做,但都須要人爲地規定劃分區間個數.同時,等寬法的缺點在於它對離羣點比較敏感,傾向於不均勻地把屬性值分佈到各個區間.有些區間包含許多數據,而另一些區間的數據極少,這樣會嚴重損壞創建的決策模型.等頻法雖然避免了上述產生的問題,卻可能將相同的數據值分到不一樣的區間以知足每一個區間中固定的數據個數
        3. 基於聚類分析的方法:
          1. 一維聚類分析的方法包括兩個步驟,首先將連續屬性的值用聚類算法(K-Means算法)進行聚類,而後再將聚類獲得的簇進行處理,合併到一個簇的連續屬性值並作同一標記.聚類分析的離散化方法也須要用戶指定簇的個數,從而決定產生的區間數
    • import pandas as pd
      data = pd.read_csv("./discretization_data.csv")
      # data.describe(percentiles=)
      print data
      data = data["coefficient"].copy()
      k = 4 # k等於4是什麼意思啊?
      d1 = pd.cut(data, k, labels=range(k))  # 等寬離散化,各個類比依次命名爲0,1,2,3
      
      # 等頻率離散化
      w = [1.0 * i/k for i in range(k+1)]
      w = data.describe(percentiles=w)[4:4+k+1]  # 使用describe函數自動計算分位數
      w[0] = w[0]*(1-1e-10)
      d2 = pd.cut(data,w,labels=range(k))
      
      from sklearn.cluster import KMeans
      kmodel = KMeans(n_clusters=k, n_jobs=4)  # 創建模型,n_jobs是並行數,通常等於cpu數較好
      kmodel.fit(data.reshape((len(data), 1)))  # 訓練模型
      
      c = pd.DataFrame(kmodel.cluster_centers_).sort(0)  # 輸出聚類中心,而且排序(默認是隨機序的)
      w = pd.rolling_mean(c,2).iloc[1:]  # 相鄰兩項求中點,做爲邊界點
      w = [0] + list(w[0]) + [data.max()]  # 把首末邊界點加上
      
      d3 = pd.cut(data, w, labels=range(k))
      
      
      def cluster_plot(d,k):  # 自定義做圖函數來顯示聚類結果
       import matplotlib.pyplot as plt
          plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來正常顯示中文標籤
       plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示符號
      
       plt.figure(figsize=(8,3))
          for j in range(0, k):
              plt.plot(data[d==j], [j for i in d[d==j]], 'o')
      
          plt.ylim(-0.5, k-0.5)
          return plt
      
      
      cluster_plot(d1, k).show()
      cluster_plot(d2, k).show()
      cluster_plot(d3, k).show()

       

    • 屬性構造
      • 在數據挖掘的過程當中,爲了提取更有用的信息,挖掘更多深層次的模式,提升挖掘結果的精度,咱們須要利用已有的屬性集構造出新的屬性,並加入到現有的集合屬性中.
    • 小波變換
      • 小波變換是一種新型的數據分析工具,是近年來興起的信號分析手段.小波分析的理論和方法在信號處理,圖像處理,語音識別,模式識別,量子物理等領域獲得愈來愈普遍的應用,它被認爲是近年來再工具及方法上的重大突破.小波變換具備多分辨率的特色,再時域和頻率都具備表徵信號局部特徵的能力,經過伸縮和平移等運算過程對信號進行多尺度聚焦分析,提供了一種非平穩信號的時頻分析手段,能夠由粗及細的逐步觀察信號,從中提取有用信息.
      • 基於小波變換的特徵提取方法
        • 基於小波變換提取方法主要有:基於小波變換的多尺度空間能量分佈特徵提取,基於小波變換的多尺度空間的模極大值特徵提取,基於小波包變換的特徵提取,基於適應性小波神經網絡的特徵提取
        • 基於小波變換的特徵提取方法
          方法描述
          基於小波包變換的特徵提取方法 利用小波分解,可將時域隨機信號序列映射爲尺度域各子空間內的隨機係數序列,按小波分解獲得的最佳子空間內隨機係數序列的不肯定型程度最低.將最佳子空間的熵值及最佳子空間在完整二叉樹中的位置參數做爲特徵量,可疑用於目標識別
          基於小波變換的多尺度空間的模式極大值特徵提取方法 利用小波變換的信號局域化分析能力,求解小波變換的模極大值特性來檢測信號的局部奇異性,將小波變換模極大值特性來檢測信號的局部奇異性,將小波變換模極大值的尺度參數s,平移參數t及其幅值做爲目標的特徵量
          基於小波變換的多尺度空間能量分佈特徵提取方法 各尺度空間內的平滑信號和細節信號能提供原始信號的時頻局域信息,特別時能提供不一樣頻段上信號的構成信息.把不一樣頻段上的信號的構成信息.把不一樣分解尺度上信號的能量求解出來,就能夠將這些能量尺度順序排列,造成特徵向量供識別用
          基於適應性小波神經網絡的特徵提取方法

          基於適應性小波神經網絡的特徵提取方法可疑經過分析小波擬合表示進行特徵提取.網絡

      • 小波基函數app

        • 小波基函數是一種具備局部支集的函數,而且平均值爲0,小波基函數知足φ(0) = ∫φ(t)dt = 0.經常使用的小波基有Haar小波基,db系列小波基等
        • 小波變換
          • 對小波基函數進行伸縮和平移變換:
        • 基於小波變換的多尺度空間能量分佈特徵提取方法
          • 應用小波分析技術能夠把信號再各頻率波段中的特徵提取出來,基於小波變換的多尺度空間能量分佈特徵提取方法時對信號進行頻帶分析,再分別以計算所得的各個頻帶的能量做爲特徵向量
          • 信號ft的二進小波分解可表示爲:
            • f(t) = Aj + ∑Dj
          • 其中A時近似信號,爲低頻信號部分;D時細節信號,爲高頻部分.
          • 信號的總能量爲:
            • E = EAj + ∑EDj
          • 選擇第j層的近似信號和各層的細節信號的能量做爲特徵,構造特徵向量:
            • F = [EAj, ED1, ED2, ... EDj]
          • 利用小波變換能夠對聲波信號進行特徵提取,提取出能夠表明聲波信號的向量的數據,即完成從聲波信號到特徵向量數據的變換.本例利用小波函數對聲波信號數據進行分解,獲得5各層次的小波係數.利用這些小波係數求得各個能量值,這些能量值便可做爲聲波信號得特徵數據
相關文章
相關標籤/搜索