資料預處理 機器學習初步

2021-09-18 03:45:28 字數 3421 閱讀 9774

這兩個是我們每次都需要匯入的庫。

numpy包含數學計算函式。

pandas用於匯入和管理資料集。

資料集通常是.csv格式。csv檔案以文字形式儲存**資料。檔案的每一行是一條資料記錄。我們使用pandas的read_ csv方法讀取本地csv檔案為乙個資料幀。然後,從資料幀中製作自變數和因變數的矩陣和向量。

我們得到的資料很少是完整的。資料可能因為各種原因丟失,為了不降低機器學習模型的效能,需要處理資料。我們可以用整列的平均值或中間值替換丟失的資料。我們用sklearn.pr-eprocessing庫中的imputer類完成這項任務。

分類資料指的是含有標籤值而不是數字值的變數。取值範圍通常是固定的。例如"yes" 和"no"不能用於模型的數學計算,所以需要解析成數字。為實現這一功能,我們從sklearn.preprocesing庫匯入labelencoder類。

把資料集拆分成兩個: -乙個是用來訓練模型的訓練集合,另乙個是用來驗證模型的測試集合。兩者比例一般是80:20。 我們匯入sklearn.cro-ssvalidation庫中的train test split()方法。 

大部分模型演算法使用兩點間的歐式距離表示,但此特徵在幅度、單位和範圍姿態問題上變化很大。在距離計算中,高幅度的特徵比低幅度特徵權重更大。可用特徵標準化或z值歸一化解決。匯入sklearn.preprocessing庫的stan-dardscalar類。

data.csv

country,age,salary,purchased

france,44,72000,no

spain,27,48000,yes

germany,30,54000,no

spain,38,61000,no

germany,40,,yes

france,35,58000,yes

spain,,52000,no

france,48,79000,yes

germany,50,83000,no

france,37,67000,yes

#day 1: data prepocessing

#step 1: importing the libraries

import numpy as np

import pandas as pd

#step 2: importing dataset

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

x = dataset.iloc[ : , :-1].values

y = dataset.iloc[ : , 3].values

print("step 2: importing dataset")

print("x")

print(x)

print("y")

print(y)

#step 3: handling the missing data

from sklearn.preprocessing import imputer

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

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

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

print("---------------------")

print("step 3: handling the missing data")

print("step2")

print("x")

print(x)

#step 4: encoding categorical data

from sklearn.preprocessing import labelencoder, onehotencoder

labelencoder_x = labelencoder()

x[ : , 0] = labelencoder_x.fit_transform(x[ : , 0])

#creating a dummy variable

onehotencoder = onehotencoder(categorical_features = [0])

x = onehotencoder.fit_transform(x).toarray()

labelencoder_y = labelencoder()

y = labelencoder_y.fit_transform(y)

print("---------------------")

print("step 4: encoding categorical data")

print("x")

print(x)

print("y")

print(y)

#step 5: splitting the datasets into training sets and test sets

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split( x , y , test_size = 0.2, random_state = 0)

print("---------------------")

print("step 5: splitting the datasets into training sets and test sets")

print("x_train")

print(x_train)

print("x_test")

print(x_test)

print("y_train")

print(y_train)

print("y_test")

print(y_test)

#step 6: feature scaling

from sklearn.preprocessing import standardscaler

sc_x = standardscaler()

x_train = sc_x.fit_transform(x_train)

x_test = sc_x.transform(x_test)

print("---------------------")

print("step 6: feature scaling")

print("x_train")

print(x_train)

print("x_test")

print(x_test)

機器學習 資料預處理

均值為0,標準差為1 from sklearn import preprocessing scaler preprocessing.standardscaler scaler.fit transform x 對原始資料進行線性變換,變換到 0,1 區間 也可以是其他固定最小最大值的區間 from s...

機器學習 資料預處理

1 連續資料特徵離散化的方法 由於lr 中模型表達能力有限,可以通過特徵離散化來提高非線性學習能力。主要方法 1 等距離散 取值範圍均勻劃分成n 等分,每份的間距相等。2 等頻離散 均勻分為n 等分,每份內包含的觀察點數相同 3 優化離散 3 1 卡方檢驗方法 統計樣本的實際觀測值與理論判斷值之間的...

資料預處理初步解釋

一 資料預處理 總結資料預處理的主要作用 提高資料計算的效果和效率,資料預處理需要考慮資料的質量要求和計算要求,質量要求 資料預處理可以把對最終分析結果影響較大的不一致資料 虛假資料 錯誤資料等等資料排除在外,保證了資料分析結果具有較大的準確性,大資料分析分析出來的結果是作為決策方面的依據,故結果的...