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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习之数据准备

發布時間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之数据准备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

04 | 數據準備

數據準備階段包含從原始數據到形成最終數據集(將要被喂給模型工具的數據)的所有操作。數據準備任務可能要進行多次,沒有規定的固定順序。任務包括:表,記錄和特征選擇以及為了模型工具的數據清洗和轉換。

-數據準備是費時間的

紐約時報的一篇文章報道,數據科學家在挖掘出有價值的“金塊”之前要花費50%到80%的時間在很多諸如收集數據和準備不規則的數據的普通任務上。混亂的數據是數據科學家工作流中典型的比較耗費時間的。

-真實世界中數據是雜亂的

數據很少是干凈的而且經常有數據質量問題。比如:數據的不唯一性,格式上不統一,非法值,特征依賴,缺失值,錯誤拼寫,等等。。見下圖:

典型的數據質量問題有幾個原因:

  • 不完全性:數據缺少特征或者包含缺失值
  • 噪聲:數據包含錯誤的記錄或者異常值
  • 不一致性:數據包好沖突的記錄或者差異。
  • 哪種問題影響數據質量?

  • 非法值:一些數據集包含一些明顯的值:例如性別只能是男或女,上面的例子很容易發現錯誤。
  • 格式:最常見的問題。可能獲得不同格式的值比如名字寫成:“姓名,xxx”或者“xxx姓名”
  • 特征依賴:一個特征的值依賴于另一個特征。例如:如果我們有一些學校數據,學生的數量與這個人是否是教師有關。如果某個人不是教師,他不可能有一些學生。
  • 唯一性:很可能發現只允許唯一值得數據重復。例如:我們的兩個產品不能有兩個身份ID。
  • 缺失值:數據集的一些特征的值可能是空白或者缺失的。
  • 拼寫錯誤:顧名思義。
  • 錯位值:一個特征的值包含另一個特征。
  • -數據準備:避免垃圾進,垃圾出

    -清洗你的數據

    為什么處理缺失值?

  • 數據集的缺失值可能導致錯誤或者由于沒有記錄的觀察值。
  • 如果缺失值出現,確定的算法可能就無效了或者得不到你期望的結果。
  • 缺失值比其他值更能影響模型。
  • 盡管有些模型可以處理缺失值,但是對缺失值比較敏感(某一變量的缺失可能得到不好的預測結果)。
  • 如何處理缺失值?

    處理缺失值的經典方法有:

  • 刪除:刪除含有缺失值的記錄。
  • 虛擬替換:利用虛擬值替換缺失值。例如:不知道的類別或者數值0.
  • 均值替換:如果缺失值是數值型的,利用均值替換。
  • 頻數替換:如果缺失值是類別的,利用出現最多的項替換。
  • 回歸替換:利用回歸方法得到回歸值替換缺失值。
  • 關于異常/離群點你需要知道的?

  • 異常值可能通過扭曲預測模型而帶來問題。
  • 離群點多少有點主觀。
  • 在多維數據中異常值非常常見。
  • 一些模型相對于其他數據對異常值沒那么敏感。
  • 異常值可能是差的數據集的結果或者他們可以使得極值(或不尋常)變得合理。
  • 一些異常值是我們訓練模型有興趣的點,但有時候他們只是擋住我們訓練的腳步。
  • 離群點的成因

    如何處理離群點

    具體如何處理離群點應該視情況而定。

  • 保持離群點:一些數據中可能是真實值得離群點沒有必要必須從數據中移除。在一些應用中,離群點會提供一些決定性的信息。比如:在一個信用卡欺詐檢測的APP里,他們可以提供陷入消費者習慣購買模式之外。
  • 移除離群點:有兩種方法移除離群點
  • A:修改或者截斷

    B:替換

    處理離群點的例子:

  • 截斷或者修改
  • 替換
  • 截斷或修改小于5%的數據點不會對假設結果產生太大的影響。

    大于5%的數據點可能影響輸出結果比如:

  • 削弱分析的力度
  • 使樣本缺少代表性
  • 可能影響正常數據
  • 考慮到數據轉換,選擇一個可替代的結果變量或者數據分析技術。
  • -數據歸一化

    如何歸一化數據?

    數據歸一化就是將數值型的值轉換到一個特定的區間上。常用的歸一化方法包含如下幾種:

  • Min-Max歸一化
  • 線性的將值轉換到一個0-1的區間。最小值0,最大值1.公式:

  • Z-score歸一化(標準歸一化)
  • 根據數據的均值和方差歸一化:利用數據平均值的差除以數據的方差。特征標準化使得數據具有0均值(即當減去分子中的均值是)和標準方差。公式:

  • Decimal歸一化
  • 將數據中帶有小數點的特征值去掉小數點。

    注:數據集的不同度量尺度可能是有問題的,在一些特定的機器學習算法是要求數據具有相同的比例的。

    -數據離散化

    如何離散化數據?

    數值變量可能有許多不同的值,對于某些算法,這可能導致非常復雜的模型。可以通過“綁定”將連續屬性轉換為分類屬性,以便于使用某些機器學習方法。離散化是將數據放進一些桶的過程,所以這是有限個可能的狀態。這些桶本身被視為有序和離散的。你也可以離散化數值列和字符串列。

    Bining(裝箱):

  • 裝箱有助于提高模型的效果。他能捕獲連續變量的非線性行為。
  • 他最小化離群值的影響。他從大量的去重數據中移除噪聲數據。
  • 他使得模型更具解釋性-分組數據更容易展示和理解。他也能提高模型的速度-當去重數據減少時能更快的建立模型。
  • 可以通過將連續數值轉換為分類屬性或者間隔值離散化數據。如下有一些方法:

    -數據降維

    樣本數據:

    如果你要分析的數據非常龐大,通常比較好用的減少數據量的方法是將數據減少維度而且使得數據變得更加具有代表性和容易處理。這將促進數據的理解,探索和特征工程。大量的數據會導致算法更長的運行時間和更大的計算和內存需求。在總的數據訓練之前你可以拿一些具有代表性的少量數據去訓練,這樣可能會更快的探索和驗證方案。

    如何給數據降維?有很多將數據降維的方法,以使得數據更容易處理。依賴于數據的大小和主要特征,如下有一種降維方法可以應用:

  • 記錄取樣:只從數據樣本中取出具有代表性的數據。
  • 特征取樣:只選擇比較重要的幾個特征。
  • 聚合:將數據分為幾組并記錄每組數據的條數。例如:可以將過去20年連鎖餐廳的每日收入聚合為月收入以減少數據量。
  • -文本清洗

    如何清洗文本數據?

    在讀取/寫入文本時不適當的文本編碼處理會導致信息的丟失,不經意的引入不可讀的字符(如:null)也可能影響文本解析。一些非結構化的文本如推特,生產評論或者網頁訪問數據在被分析之前通常需要做一些準備工作。

    例如:

  • 利用空格替換特殊字符和標點符號
  • 規范化案例
  • 移除重復的字符
  • 移除用戶自定義的或者內置的停用詞
  • 詞干提取
  • 案例視頻網址:https://azure.microsoft.com/en-us/resources/videos/preprocessing-data-in-azure-ml-studio/

    -特征工程

    特征工程在機器學習中是關鍵的任務。現在沒有對特征工程統一的定義,對于不同的人他意味著不同的事情。在谷歌的定義里:從數據中提取特征的過程叫做特征工程。在微軟的文檔里特征工程更多的是關于特征的構造。

    特征工程是一門藝術-數據專家和專業領域專家交流越多,特征工程過程會越好。

  • 特征工程師需要在數據探索步驟里結合專業領域知識和洞察力。
  • 為了避免不相關的變量找到包含詳實的變量是一個平衡的藝術。
  • 詳實的變量可以提升結果;不相關的變量會給模型增加不必要的噪聲。
  • 什么是特征?

    左邊三列是輸入特征又叫做屬性,解釋變量,自變量右邊一列是對應的結果又叫做因變量,最后一列最下面兩個問號是未知值,是要利用模型進行預測的。

    特征就是一個可以獨立測量的屬性或者根據現象可觀察的值。在上面圖中的例子,有一系列特征如bedrooms,house size,neighborhood用來當做模型的輸入,目標就是房子的售價。圖中有一些知道價格的房子(分為訓練集和測試集)。一個模型可以被建立用于預測還不知道價格的房子。簡而言之就是一旦我們利用帶有標簽的樣本訓練我們的模型,我們就可以用它預測沒有標簽樣本的標簽。

    -特征工程可以增強你的數據

    -特征工程案例

    案例一:

    ?

    案例2

    案例3

    案例4

    因為我們的目標是從訓練數據里構造更加高效的特征,我們用同一個算法但用四個不同的訓練數據集建立了四個模型。這四個訓練數據集都是極具同樣的輸入數據創建的,只不過是為四個數據集增加了不同的特征。

  • 特征集合A=天氣+假期+工作日+周末作為預測日的特征
  • 特征集合B=每天的前12小時的自行車租賃數量
  • 特征集合C=在同一個小時的前12天的自行車租賃數量
  • 特征集合D=在同一天的同一個小時的前12周的自行車租賃數量
  • 除了特征集合A是在原始數據里都已經存在的特征,其他三個特征集合都是通過特征工程創建的。這些特征集合的每一個都體現不同剛面的問題:

  • 特征集合B體現最近的租賃需求
  • 特征集合C體現在一個特征小時內的租賃需求
  • 特征集合D體現在一個特定小時和特定一周內的某一天的租賃需求
  • 四中數據集的效果對比:

    我們用了增強決策樹回歸模型,一個常用的非線性算法建立模型。為了理解四個模型的表現,上表給出了對比的結果。表中可以看出:最好的結果是A+B+C和A+B+C+D但是特征集合D并沒有對模型的效果有所提升。

    -特征選擇

    通過特征集合的部分特征來降低特征空間。特征選擇就是從原始數據的特征集合里選擇一個特征子集來降低特征的維度,以用最小的特征子集代表最大數量的變量。這個子集就是要進行模型訓練的數據集。通常是先用特征工程生成特征然后在特征選擇這一步更好的評估相關的,多于的和高度匹配的特征。

    -為什么要進行特征性選擇?

    通常,數據包含很多冗余和不相關的特征,一下有四個進行特征選擇技術的原因?

  • 簡化模型:使得研究者或者用戶更易于解釋
  • 假話訓練時間:提升學習過程
  • 避免維度災難
  • 增加泛化能力:防止過擬合
  • 維度災難:

    維數災難指的是某些學習算法在高維數據中表現不佳。例如:經過一個固定點之后,通過增加特征來增加問題的維度確實會影響我們的分類器的性能。這種情況如下圖所示,通常我們稱之為“維災難”。

    當你增加更多特征時,你可能需要指數級的增加數據去填充一些空白。然而,實際上我們的數據量都是固定的,增加你需要的數據并不容易。

    -特征選擇方法

    -傳統的方法:

  • 正向選擇:剛開始模型沒有變量,然后你迭代的添加變量并特使模型的預測精度,直到添加更多的變量不再對模型產生正面的影響。
  • 反向消除:開始時使用全部變量,通過移除變量測試預測精度來選擇特征。
  • 逐步回歸:這是一個通過不斷的迭代步驟選擇最好的特征刪除最差的特征的算法。在每一個階段的過程,添加一個新變量后,在沒有明顯增加誤差的情況下進行測試檢查是否能刪除一些變量。當度量(局部)最大化時,或者當可用改進低于某個臨界值時,該過程終止。
  • -過濾方法

    通過評估每個特征和目標屬性之間的相關性,這些方法通過應用一個統計測量給每一個特征附一個分數。特征根據分數進行排名,這個分數可以用來幫助設置一個閾值來選擇或者消除一個特定的特征。統計的測量方法包括如下幾種:

  • Pearson相關系數
  • 互信息
  • 卡方測試等等
  • 這些方法在計算時間上特別有效,并且對過擬合具有魯棒性。然而,過濾方法趨向于選擇冗余的特征,因為他們不考慮變量之間的相關性。因此,他們主要用作一個預處理方法。

    -包裝方法

    包裝方法將選擇特征作為一個搜索問題,和組合不同的是準備,評估以及和其他的組合比較。一個預測模型被用來評估一個組合特征并基于模型精度附一個得分。

    包裝器方法評估變量的子集,這與過濾方法不同,允許檢測變量之間可能的交互。

    當包裝器方法為每個子集訓練新的模型時,它們在計算上非常密集,但是通常為該特定類型的模型提供最佳性能的特征集。

    -嵌入方法

    嵌入的方法在創建模型的同時,學習哪些特征對模型的準確性做出最好的貢獻。最常用的嵌入式特征選擇方法是正則化方法。正則化方法也稱為懲罰方法,它向預測算法(如回歸算法)的優化引入額外的約束,使模型偏向于較低的復雜度(較少的系數)。這些方法的一些最流行的例子是LASSO和RIDGE回歸,它們具有內置的懲罰函數以減少過擬合。

    -特征選擇方法總結

  • 過濾方法使用統計方法評估特征子集,然而包裝方法使用交叉驗證。
  • 過濾器方法比包裝器方法快得多,因為它們不涉及對模型進行訓練。另一方面,包裝方法在計算上也非常昂貴。
  • 在很多情況下,篩選方法可能無法找到最佳特性子集,但是包裝器方法總是可以提供最佳特性子集
  • 與使用來自過濾方法的特征子集相比,使用來自包裝方法的特征子集使模型更容易過擬合
  • 嵌入式方法結合過濾器和包裝方法的性質。它是由具有自己的內置特征選擇方法的算法實現的
  • -特征選擇VS降維

    -特征工程的定義具有不同的版本

    谷歌的定義比微軟包含更多的處理。在谷歌的定義中,特征工程包括數據預處理,數據過采樣,特征選擇等。讓我們看看谷歌如何做特征工程:

    特征工程是指將原始數據轉換為特征向量。從原始數據創建特征的過程是特征工程,期望花費大量的時間做特征工程。

    ?

    總結

    以上是生活随笔為你收集整理的机器学习之数据准备的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。