【機器學習個人筆記】part1——用sklearn實作資料預處理
- 1.導入資料處理标準庫
- 2.導入資料集
- 3.處理預設資料
- 4.處理分類資料,虛拟編碼
- 5.劃分訓練集和測試集
- 6.特征縮放
- [完整代碼](https://github.com/carrycarry5/ml-personal-notes)

1.導入資料處理标準庫
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
2.導入資料集
dataset = pd.read_csv('../Data.csv')
x1 = dataset.iloc[:, :-1] # dataframe格式
x = dataset.iloc[:, :-1].values # numpy格式 自變量應該是個矩陣
y = dataset.iloc[:,-1:].values # 因變量應該是個向量
原始資料集:x:![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼 y:![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼 ![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼
3.處理預設資料
遇到缺失資料時,我們首先想到的是要把這條記錄删掉,但這條記錄可能包含了一些重要的資訊, 是以應該采取别的方法。例如,用整列的平均值代替缺失資料。
from sklearn.preprocessing import Imputer #該類專門用于處理缺失對象
imputer = Imputer(missing_values= 'NaN',strategy='mean',axis=0) #用均值來填補預設值,axis=0代表對列操作
imputer.fit(x[:,1:3]) # 用x去拟合
x[:,1:3] = imputer.transform(x[:,1:3])
處理後的x:![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼
Imputer類中的strategy的可選值共有:mean(均值),median(中位數),most_frequent(衆數)
4.處理分類資料,虛拟編碼
某些标簽,比如國家,不能直覺的看出其差異,将其轉換為數字更好觀察
但這些國家并沒有數值上的差異,它們隻是不一樣,這種排序是沒有意義的,如何解決?
——虛拟編碼
# encoding categorical data # 處理分類資料
from sklearn.preprocessing import LabelEncoder,OneHotEncoder # 該類用于将label标準化
label_encoder_x = LabelEncoder() # 轉換'國家'
x[:,0] = label_encoder_x.fit_transform(x[:,0]) # 拟合、轉換
label_encoder_y = LabelEncoder() # 轉換'是否購買'
y = label_encoder_y.fit_transform(y[:,0])
# 虛拟編碼
onehotencoder = OneHotEncoder(categorical_features = [0])
x = onehotencoder.fit_transform(x).toarray()
處理後的x資料集:其中前3列是‘國家’虛拟編碼後的結果![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼
5.劃分訓練集和測試集
# sptting the dataset into the Training set and Test set 劃分訓練集和測試集
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=42)
以1:4的比例将資料集切割成測試集合訓練集
6.特征縮放
何為特征縮放:https://blog.csdn.net/xlinsist/article/details/51212348
# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_x = StandardScaler()
x_train[:,-2:] = sc_x.fit_transform(x_train[:,-2:])
x_test[:,-2:] = sc_x.transform(x_test[:,-2:]) # 之前sc_x已經拟合過了,是以不用再拟合了
縮放後的資料![]()
【機器學習個人筆記】part1——用sklearn實作資料預處理1.導入資料處理标準庫2.導入資料集3.處理預設資料4.處理分類資料,虛拟編碼5.劃分訓練集和測試集6.特征縮放完整代碼
完整代碼
- 資料預處理的幾個基本步驟就介紹到這裡,希望能夠幫助到大家。