<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          機器學(xué)習(xí):處理缺失值方法總結(jié)

          共 2743字,需瀏覽 6分鐘

           ·

          2023-05-07 19:15

          你好,我是你們的老朋友,zhenguo!

          處理缺失值是在進(jìn)行機器學(xué)習(xí)時非常重要的一個步驟。

          缺失值會影響機器學(xué)習(xí)模型的準(zhǔn)確度,因此在訓(xùn)練模型之前,通常需要先處理掉缺失值。

          這篇文章,總結(jié)一些常見的缺失值處理方法。

          常見處理方法

          機器學(xué)習(xí)常見處理方法包括:

          1. 刪除帶有缺失值的行:這種方法適用于數(shù)據(jù)集中缺失值較少的情況。但是,如果刪除的行數(shù)過多,會導(dǎo)致數(shù)據(jù)集的樣本量過少,不利于模型的訓(xùn)練。

          2. 用平均值、中位數(shù)或眾數(shù)來填補缺失值:這種方法適用于數(shù)值型的特征。例如,對于一個有缺失值的數(shù)值型特征,可以用這個特征的平均值來填補缺失值。

          3. 使用模型預(yù)測缺失值:對于缺失值較多的數(shù)據(jù)集,可以考慮先訓(xùn)練一個機器學(xué)習(xí)模型,然后用這個模型來預(yù)測缺失值。

          4. 使用熱門值來填補缺失值:如果缺失值的特征有很多類別,可以考慮使用這個特征的熱門值來填補缺失值。

          5. 使用近似值來填補缺失值:對于連續(xù)型的特征,可以使用與該特征最相似的其他特征的值來填補缺失值。

          缺失值處理實戰(zhàn):處理方法1和2

          下面是使用 Python 中的 Pandas 庫來處理缺失值的代碼示例。

          首先,我們導(dǎo)入所需的庫:

                
                import?pandas?as?pd

          然后,我們創(chuàng)建一個簡單的數(shù)據(jù)集,其中包含一些缺失值:

                
                data?=?{'A':?[1,?2,?3,?4,?5],
          ????????'B':?[6,?7,?8,?None,?10],
          ????????'C':?[11,?12,?13,?14,?15],
          ????????'D':?[16,?17,?None,?19,?20]}
          df?=?pd.DataFrame(data)
          print(df)

          輸出的數(shù)據(jù)集如下:

                
                ???A?????B???C?????D
          0??1???6.0??11??16.0
          1??2???7.0??12??17.0
          2??3???8.0??13???NaN
          3??4???NaN??14??19.0
          4??5??10.0??15??20.0

          接下來,我們可以使用 Pandas 庫中的 dropna() 函數(shù)來刪除帶有缺失值的行:

                
                df_without_missing_values?=?df.dropna()
          print(df_without_missing_values)

          輸出的結(jié)果如下:

                
                ???A?????B???C?????D
          0??1???6.0??11??16.0
          1??2???7.0??12??17.0
          4??5??10.0??15??20.0

          然后,我們可以使用 Pandas 庫中的 fillna() 函數(shù)來用平均值填補缺失值:

                
                mean_value?=?df['B'].mean()
          df['B']?=?df['B'].fillna(mean_value)

          mean_value?=?df['D'].mean()
          df['D']?=?df['D'].fillna(mean_value)

          print(df)

          輸出的數(shù)據(jù)集如下:

                
                ???A??????B???C?????D
          0??1???6.00??11??16.0
          1??2???7.00??12??17.0
          2??3???8.00??13??18.0
          3??4???7.75??14??19.0
          4??5??10.00??15??20.0

          另外,我們還可以使用 Pandas 庫中的 interpolate() 函數(shù)來用插值法填補缺失值:

                
                df_interpolated?=?df.interpolate()
          print(df_interpolated)

          缺失值處理實戰(zhàn):處理方法3(使用模型預(yù)測缺失值)

          我們還可以使用機器學(xué)習(xí)算法來預(yù)測缺失值。下面是使用 Scikit-learn 庫中的線性回歸模型來預(yù)測缺失值的代碼示例:

                
                from?sklearn.linear_model?import?LinearRegression

          #?選擇用來預(yù)測的特征
          X?=?df[['A',?'C']]

          #?選擇要預(yù)測的目標(biāo)特征
          y?=?df['B']

          #?將缺失值用平均值填補
          mean_value?=?y.mean()
          y?=?y.fillna(mean_value)

          #?創(chuàng)建線性回歸模型
          reg?=?LinearRegression().fit(X,?y)

          #?預(yù)測缺失值
          predictions?=?reg.predict(X)

          #?將預(yù)測結(jié)果填入數(shù)據(jù)集
          df['B']?=?predictions
          print(df)

          B列填充后,輸出的結(jié)果如下:

                
                ???A??????????B???C?????D
          0??1???6.666667??11??16.0
          1??2???7.333333??12??17.0
          2??3???8.000000??13???NaN
          3??4???8.666667??14??19.0
          4??5??10.000000??15??20.0

          還可以使用分類和回歸樹 (CART) 算法來預(yù)測缺失值。下面是使用 Scikit-learn 庫中的決策樹模型來預(yù)測缺失值的代碼示例:

                
                from?sklearn.tree?import?DecisionTreeRegressor

          #?創(chuàng)建決策樹模型
          reg?=?DecisionTreeRegressor().fit(X,?y)

          #?預(yù)測缺失值
          predictions?=?reg.predict(X)

          #?將預(yù)測結(jié)果填入數(shù)據(jù)集
          df['B']?=?predictions
          print(df)

          最后,缺失值填充要根據(jù)數(shù)據(jù)集的特點和需求,選擇合適的方法來處理缺失值。

          大家一起加油????!


          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天美传媒麻豆MDXXXX | 影音先锋夜夜亚洲 | 好逼天天有 | 久久国产精品伦子伦 | 人人爽,人人操 |