為方便收藏學習,轉載自:https://www.jb51.net/article/158168.htm
本文實例為大家分享了Python數據預處理的具體代碼,供大家參考,具體內容如下
1.導入標准庫
1
2
3
|
import
numpy as np
import
matplotlib.pyplot as plt
import
pandas as pd
|
2.導入數據集
1
2
3
4
5
|
dataset
=
pd.read_csv(
'data (1).csv'
)
# read_csv:讀取csv文件
#創建一個包含所有自變量的矩陣,及因變量的向量
#iloc表示選取數據集的某行某列;逗號之前的表示行,之后的表示列;冒號表示選取全部,沒有冒號,則表示選取第幾列;values表示選取數據集里的數據。
X
=
dataset.iloc[:, :
-
1
].values
# 選取數據,不選取最后一列。
y
=
dataset.iloc[:,
3
].values
# 選取數據,選取每行的第3列數據dataset.
z = dataset.iloc[:, 0:8] # 選取數據,選取每行的前7列。注意這里不包括第8列。
w = dataset.iloc[:, 8] #選取數據,選取我每行的第8列。和上一行進行相比,這是在取過前7行之后,只取第八列。
上述的意思可以這樣考慮,選取數據進行訓練,前7列是特征,第8列是標簽。
|
3.缺失數據
1
2
3
4
5
|
from
sklearn.preprocessing
import
Imputer
#進行數據挖掘及數據分析的標准庫,Imputer缺失數據的處理
#Imputer中的參數:missing_values 缺失數據,定義怎樣辨認確實數據,默認值:nan ;strategy 策略,補缺值方式 : mean-平均值 , median-中值 , most_frequent-出現次數最多的數 ; axis =0取列 =1取行
imputer
=
Imputer(missing_values
=
'NaN'
, strategy
=
'mean'
, axis
=
0
)
imputer
=
imputer.fit(X[:,
1
:
3
])
#擬合fit
X[:,
1
:
3
]
=
imputer.transform(X[:,
1
:
3
])
|
4.分類數據
1
2
3
4
5
6
7
8
|
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()
#因為Purchased是因變量,Python里面的函數可以將其識別為分類數據,所以只需要LabelEncoder轉換為分類數字
labelencoder_y
=
LabelEncoder()
y
=
labelencoder_y.fit_transform(y)
|
5.將數據集分為訓練集和測試集
1
2
3
4
5
|
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
)
#X_train(訓練集的字變量),X_test(測試集的字變量),y_train(訓練集的因變量),y_test(訓練集的因變量)
#訓練集所占的比重0.2~0.25,某些情況也可分配1/3的數據給訓練集;train_size訓練集所占的比重
#random_state決定隨機數生成的方式,隨機的將數據分配給訓練集和測試集;random_state相同時會得到相同的訓練集和測試集
|
6.特征縮放
1
2
3
4
5
|
#特征縮放(兩種方式:一:Standardisation(標准化);二:Normalisation(正常化))
from
sklearn.preprocessing
import
StandardScaler
sc_X
=
StandardScaler()
X_train
=
sc_X.fit_transform(X_train)
#擬合,對X_train進行縮放
X_test
=
sc_X.transform(X_test)
#sc_X已經被擬合好了,所以對X_test進行縮放時,直接轉換X_test
|
7.數據預處理模板
(1)導入標准庫
(2)導入數據集
(3)缺失和分類很少遇到
(4)將數據集分割為訓練集和測試集
(5)特征縮放,大部分情況下不需要,但是某些情況需要特征縮放
以上所述是給大家介紹的Python數據預處理詳解整合。