黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

用Python實現數據預處理

系統 2211 0
作者:Afroz Chakure

翻譯:瘋狂的技術宅

原文:https://towardsdatascience.co...

未經允許嚴禁轉載

機器學習的核心是處理數據。你的 機器學習工具應該與數據的質量一樣好 。本文涉及 清理數據 的各個步驟。你的數據需要經過幾個步驟才能用于預測。

數據預處理涉及的步驟:

  1. 導入所需的庫
  2. 導入數據集
  3. 處理缺失的數據。
  4. 編碼分類數據。
  5. 將數據集拆分為測試集和訓練集。
  6. 特征縮放。

那么讓我們逐一學習這些步驟。

步驟1:導入所需的庫

你先需要下載此數據集:Data.csv

每次我們制作新模型時,都會要求導入 Numpy 和 Pandas。 Numpy 是一個包含數學函數的庫,用于科學計算,而 Pandas 用于導入和管理數據集。

          
            import pandas as pd
import numpy as np
          
        

在這里我們導入 pandas 和 Numpy 庫并分別命名名 “pd” 和 “np”。

第2步:導入數據集

數據集以 .csv 格式提供。 CSV 文件以純文本格式存儲表格數據。該文件的每一行都是一個數據記錄。我們使用 pandas 庫的 read_csv 方法將本地 CSV 文件讀取為 數據幀(dataframe)

          
            dataset = pd.read_csv('Data.csv')
          
        

在仔細檢查數據集之后,我們將在數據集(X)中創建一個特征矩陣,并創建一個依賴向量(Y)及其各自的觀察結果。我們用 pandas 的 iloc (用于修復索引以進行選擇)讀取列,它包含兩個參數 — [行選擇,列選擇]。

          
            X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values
          
        

步驟3:處理缺失的數據

我們得到的數據很少是同質的。有時數據可能會丟失,所以需要對其進行處理,以免降低機器學習模型的性能。

我們需要用整列的 Mean 或 Median 替換缺失的數據。為此,我們將使用 sklearn.preprocessing 庫,其中包含一個名為 Imputer 的類,它將幫助我們處理丟失的數據。

          
            from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)
          
        

我們的對象名稱是 imputer Imputer 類可以采用如下參數:

  1. missing_values : 它是缺失值的占位符。所有出現的 missing_values 都將被估算。我們可以給它一個整數或 NaN 來查找缺失值。
  2. strategy : 這是插補策略 —— 如果是"mean",則使用沿軸的平均值(列)替換缺失值。其他策略包括"median"(中位數)和"most_frequent"(最常見)。
  3. axis : 可以指定 0 或 1,0 沿列插入,1沿行插入。

現在將 imputer 對象與我們的數據相匹配。

          
            imputer = imputer.fit(X[:, 1:3])
          
        

接著用 transform 方法將缺失值替換為列的平均值。

          
            X[:, 1:3] = imputer.transform(X[:, 1:3])
          
        

步驟4:編碼分類數據

任何非定量的變量都是分類的。例如頭發顏色、性別、研究領域、大學就業、政治派別、疾病感染狀況等。

但是為什么要編碼?

我們不能在模型的數學方程中使用“男性”和“女性”等值,因此需要將這些變量編碼為數字。

為此,我們從 sklearn.preprocessing 庫導入 LabelEncoder 類,并創建 LabelEncoder 類的對象 labelencoder_X 。之后在分類特征上使用 fit_transform 方法。

在編碼之后,有必要區分同一列中的變量,為此我們將使用 sklearn.preprocessing 庫中的 OneHotEncoder 類。

獨熱編碼(One-Hot Encoding)

獨熱編碼將分類特征轉換為更適合分類和回歸算法的格式。

          
            from sklearn.preprocessing import LabelEncoder, OneHotEncoder

labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])

onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()

labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
          
        

步驟5:將數據集拆分為訓練集和測試集

現在我們將數據分成兩組,一組用于訓練模型,稱為 訓練集 ,另一組用于測試模型的性能,稱為 測試集 。它們的比例通常是 80/20。為此,我們導入 sklearn.model_selection 庫的 train_test_split 方法。

          
            from sklearn.model_selection import train_test_split
          
        

現在建立訓練集和測試集,我們將創建 4 套 ——

  1. X_train (訓練部分特征矩陣),
  2. X_test (測試特征矩陣的一部分),
  3. Y_train (訓練與 X 集相關的因變量的一部分,因此也是相同的索引),
  4. Y_test (測試與 X 測試集相關的因變量的一部分,因此也測試相同的索引)。

我們將為它們分配 test_train_split ,它接受參數 arrays (X和Y) test_size (指定分割數據集的比率)。

          
            X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
          
        

第6步:特征縮放

大多數機器學習算法在其計算中使用兩個數據點之間的 歐幾里德距離 。因此, 高幅度特征在距離計算 中的權重將比低幅度的特征 更重 。為了避免這種功能,使用標準化或 Z-score 標準化。這是通過使用 StandardScaler sklearn.preprocessing 來完成的。

          
            from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
          
        

此外,我們將轉換 X_test 集合,同時需要適應并轉換 X_train 集合。

轉換函數將所有數據轉換為相同的標準化比例。

          
            X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
          
        

到此為止,你已經學習了數據預處理所涉及的基本步驟。

現在,你可以嘗試在某些實際數據集上應用這些預處理技術。


歡迎掃碼關注公眾號:硬核智能


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論