這兩個是我們每次都需要匯入的庫。
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 卡方檢驗方法 統計樣本的實際觀測值與理論判斷值之間的...
資料預處理初步解釋
一 資料預處理 總結資料預處理的主要作用 提高資料計算的效果和效率,資料預處理需要考慮資料的質量要求和計算要求,質量要求 資料預處理可以把對最終分析結果影響較大的不一致資料 虛假資料 錯誤資料等等資料排除在外,保證了資料分析結果具有較大的準確性,大資料分析分析出來的結果是作為決策方面的依據,故結果的...