用python處理AI資料集

2021-09-25 04:45:00 字數 4106 閱讀 6925

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

匯入所需的庫

匯入資料集

處理缺失的資料。

編碼分類資料。

將資料集拆分為測試集和訓練集。

特徵縮放。

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

每次我們製作新模型時,都會要求匯入 numpy 和 pandas。 numpy 是乙個包含數學函式的庫,用於科學計算,而 pandas 用於匯入和管理資料集。

import pandas as pd

import numpy as np

複製**

在這裡我們匯入 pandas 和 numpy 庫並分別命名名 「pd」 和 「np」。

資料集以 .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

複製**

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

我們需要用整列的 mean 或 median 替換缺失的資料。為此,我們將使用sklearn.preprocessing庫,其中包含乙個名為imputer的類,它將幫助我們處理丟失的資料。

from sklearn.preprocessing import imputer

imputer = imputer(missing_values = "nan", strategy = "mean", axis = 0)

複製**

我們的物件名稱是imputerimputer類可以採用如下引數:

missing_values: 它是缺失值的佔位符。所有出現的missing_values都將被估算。我們可以給它乙個整數或nan來查詢缺失值。

strategy: 這是插補策略 —— 如果是"mean",則使用沿軸的平均值(列)替換缺失值。其他策略包括"median"(中位數)和"most_frequent"(最常見)。

axis: 可以指定 0 或 1,0 沿列插入,1沿行插入。

現在將imputer物件與我們的資料相匹配。

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

複製**

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

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

複製**

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

但是為什麼要編碼?

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

為此,我們從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)

複製**

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

from sklearn.model_selection import train_test_split

複製**

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

x_train(訓練部分特徵矩陣),

x_test(測試特徵矩陣的一部分),

y_train(訓練與 x 集相關的因變數的一部分,因此也是相同的索引),

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)

複製**

大多數機器學習演算法在其計算中使用兩個資料點之間的歐幾里德距離。因此,高幅度特徵在距離計算中的權重將比低幅度的特徵更重。為了避免這種功能,使用標準化或 z-score 標準化。這是通過使用standardscalersklearn.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)

複製**

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

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

用mapreduce 處理氣象資料集

用mapreduce 處理氣象資料集 編寫程式求每日最高最低氣溫,區間最高最低氣溫 解壓資料集,並儲存在文字檔案中 對氣象資料格式進行解析 編寫map函式,reduce函式 將其許可權作出相應修改 本機上測試執行 放到hdfs上執行將之前爬取的文字檔案上傳到hdfs上 用hadoop streami...

用mapreduce 處理氣象資料集

編寫程式求每日最高最低氣溫,區間最高最低氣溫 解壓資料集,並儲存在文字檔案中 對氣象資料格式進行解析 編寫map函式,reduce函式 將其許可權作出相應修改 本機上測試執行 放到hdfs上執行將之前爬取的文字檔案上傳到hdfs上 用hadoop streaming命令提交任務 檢視執行結果12 3...

用mapreduce 處理氣象資料集

本次的所有操作均在當前使用者目錄下的 temp 2018 05 09中 wget drc accept regex regex p data 在這之前,需要配置好環境,在.bashrc中加入下面的命令 export path path usr local hbase bin usr local ha...