亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

用Python實(shí)現(xiàn)數(shù)據(jù)預(yù)處理

系統(tǒng) 2057 0
作者:Afroz Chakure

翻譯:瘋狂的技術(shù)宅

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

未經(jīng)允許嚴(yán)禁轉(zhuǎn)載

機(jī)器學(xué)習(xí)的核心是處理數(shù)據(jù)。你的 機(jī)器學(xué)習(xí)工具應(yīng)該與數(shù)據(jù)的質(zhì)量一樣好 。本文涉及 清理數(shù)據(jù) 的各個(gè)步驟。你的數(shù)據(jù)需要經(jīng)過幾個(gè)步驟才能用于預(yù)測。

數(shù)據(jù)預(yù)處理涉及的步驟:

  1. 導(dǎo)入所需的庫
  2. 導(dǎo)入數(shù)據(jù)集
  3. 處理缺失的數(shù)據(jù)。
  4. 編碼分類數(shù)據(jù)。
  5. 將數(shù)據(jù)集拆分為測試集和訓(xùn)練集。
  6. 特征縮放。

那么讓我們逐一學(xué)習(xí)這些步驟。

步驟1:導(dǎo)入所需的庫

你先需要下載此數(shù)據(jù)集:Data.csv

每次我們制作新模型時(shí),都會(huì)要求導(dǎo)入 Numpy 和 Pandas。 Numpy 是一個(gè)包含數(shù)學(xué)函數(shù)的庫,用于科學(xué)計(jì)算,而 Pandas 用于導(dǎo)入和管理數(shù)據(jù)集。

          
            import pandas as pd
import numpy as np
          
        

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

第2步:導(dǎo)入數(shù)據(jù)集

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

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

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

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

步驟3:處理缺失的數(shù)據(jù)

我們得到的數(shù)據(jù)很少是同質(zhì)的。有時(shí)數(shù)據(jù)可能會(huì)丟失,所以需要對(duì)其進(jìn)行處理,以免降低機(jī)器學(xué)習(xí)模型的性能。

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

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

我們的對(duì)象名稱是 imputer Imputer 類可以采用如下參數(shù):

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

現(xiàn)在將 imputer 對(duì)象與我們的數(shù)據(jù)相匹配。

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

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

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

步驟4:編碼分類數(shù)據(jù)

任何非定量的變量都是分類的。例如頭發(fā)顏色、性別、研究領(lǐng)域、大學(xué)就業(yè)、政治派別、疾病感染狀況等。

但是為什么要編碼?

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

為此,我們從 sklearn.preprocessing 庫導(dǎo)入 LabelEncoder 類,并創(chuàng)建 LabelEncoder 類的對(duì)象 labelencoder_X 。之后在分類特征上使用 fit_transform 方法。

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

獨(dú)熱編碼(One-Hot Encoding)

獨(dú)熱編碼將分類特征轉(zhuǎn)換為更適合分類和回歸算法的格式。

          
            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:將數(shù)據(jù)集拆分為訓(xùn)練集和測試集

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

          
            from sklearn.model_selection import train_test_split
          
        

現(xiàn)在建立訓(xùn)練集和測試集,我們將創(chuàng)建 4 套 ——

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

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

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

第6步:特征縮放

大多數(shù)機(jī)器學(xué)習(xí)算法在其計(jì)算中使用兩個(gè)數(shù)據(jù)點(diǎn)之間的 歐幾里德距離 。因此, 高幅度特征在距離計(jì)算 中的權(quán)重將比低幅度的特征 更重 。為了避免這種功能,使用標(biāo)準(zhǔn)化或 Z-score 標(biāo)準(zhǔn)化。這是通過使用 StandardScaler sklearn.preprocessing 來完成的。

          
            from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
          
        

此外,我們將轉(zhuǎn)換 X_test 集合,同時(shí)需要適應(yīng)并轉(zhuǎn)換 X_train 集合。

轉(zhuǎn)換函數(shù)將所有數(shù)據(jù)轉(zhuǎn)換為相同的標(biāo)準(zhǔn)化比例。

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

到此為止,你已經(jīng)學(xué)習(xí)了數(shù)據(jù)預(yù)處理所涉及的基本步驟。

現(xiàn)在,你可以嘗試在某些實(shí)際數(shù)據(jù)集上應(yīng)用這些預(yù)處理技術(shù)。


歡迎掃碼關(guān)注公眾號(hào):硬核智能


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99热国内精品 | 亚洲黄色成人 | 四虎国产永久在线观看 | 一级毛片美国一级j毛片不卡 | 欧美激情久久欧美激情 | 免费的拍拍视频在线观看 | 欧美区亚洲区 | 五月天久久婷婷 | 天天操夜夜草 | 涩综合| 精品在线一区二区 | 免费观看羞羞视频网站 | 在线手机福利免费福利院 | 欧洲毛片真人 | 久久九九精品一区二区 | 一本一本久久a久久精品综合 | 波多野结衣久久高清免费 | 久草在线影视 | 成人做爰毛片免费视频 | 国产亚洲欧洲国产综合一区 | 精品毛片免费看 | 天天干天天舔天天操 | 女人用粗大自熨喷水在线视频 | 欧美一区中文字幕 | 成人欧美在线 | 久久九九| 亚洲精品人成无码中文毛片 | 中文字幕第13亚洲另类 | 成人淫片免费视频95视频 | 毛片大全 | 久久久中文字幕 | 天天插夜夜 | 久热中文字幕在线观看 | 国产精品成人免费视频 | 欧美成人h版影片在线观看 欧美成人h精品网站 | 日韩区| 国产xx肥老妇视频奂费 | 欧美日韩国产在线人成 | 韩国成人毛片aaa黄 韩国高清不卡一区二区 | 新久草在线视频 | 精品国产成人三级在线观看 |