Day_1
步驟一 —— 導(dǎo)入必需庫
在進(jìn)行數(shù)據(jù)分析,需要兩個必須常用庫 —— pandas 办龄、 Numpy
import numpy as np
import pandas as pd
步驟二 —— 導(dǎo)入數(shù)據(jù)集
數(shù)據(jù)集一般為.csv
格式烘绽,且通常為表格形式。每一行都有對應(yīng)的數(shù)據(jù)記錄
我們使用pandas
中的read_csv
的方式來讀取數(shù)據(jù)集的內(nèi)容俐填,然后可以在Dataframe中分離矩陣和相關(guān)和不相關(guān)的向量
dataset = pd.read_csv(filepath_or_buffer=" ")
X = dataset.iloc[ : , : -1].values
Y = dataset.iloc[ : , 3].values
步驟三 —— 缺失值處理
關(guān)于缺失值(missing value)的處理安接,在sklearn
的preprocessing
包中包含了對數(shù)據(jù)集中缺失值的處理,主要是應(yīng)用Imputer
類進(jìn)行處理
進(jìn)行處理的數(shù)據(jù)集中包含缺失值一般步驟如下:
- 使用字符串'nan'來代替數(shù)據(jù)集中的缺失值英融;
- 將該數(shù)據(jù)集轉(zhuǎn)換為浮點(diǎn)型便可以得到包含np.nan的數(shù)據(jù)集盏檐;
- 使用sklearn.preprocessing.Imputer類來處理使用np.nan對缺失值進(jìn)行編碼過的
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])
步驟四 —— 分類數(shù)據(jù)編碼
分類數(shù)據(jù)一般包含標(biāo)簽分類值,而不是數(shù)據(jù)值驶悟⌒喾剩可能的變量通常限制在固定數(shù)據(jù)集中佛南。單純的變量值不能在數(shù)學(xué)模型等式中使用,所以我們需要對分類數(shù)據(jù)編碼成數(shù)字。
作法: 從sklearn.preprocessing
中導(dǎo)入LabelEncoder
類
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
再創(chuàng)建一個虛擬變量 (變量dummy化)
dummy variable是用0或1表示某個類別是否出現(xiàn)
onehotencoder = Onehotencoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
步驟五 —— 將數(shù)據(jù)集分成 測試集 和 訓(xùn)練集
將數(shù)據(jù)集分為兩個部分穗椅,一個訓(xùn)練集,另一個用來測試所建立的模型的表現(xiàn)装畅。
通常分配數(shù)據(jù)比例為 80/20 晶衷。
接下來采用從sklearn.model_selection
庫中導(dǎo)入train_test_split()
類
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)
注意:原來的cross_validation模塊被棄用了,改為支持model_selection這個模塊
步驟六 —— 特征縮放 (Feature scaling)
feature scaling(特征縮放)的思想就是將所選特征的value都縮放到一個大致相似的范圍
通常來說抄邀,大部分機(jī)器學(xué)習(xí)算法都采用歐氏距離來計算兩地的距離耘眨。特征在不同的量級、單位境肾、排列上的極度不同會產(chǎn)生問題剔难。高量級的數(shù)據(jù)的歐式距離的計算量會很大胆屿。
為使得特征標(biāo)準(zhǔn)化或Z-score統(tǒng)一化,需要導(dǎo)入 sklearn.preprocessing
中的StandardScalar
代碼如下:
from sklearn.preprocessing import StandardScalar
sc_X = StandardScalar()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)
第一天的學(xué)習(xí)結(jié)束啦偶宫,開心??
本文作者: Keithxodoy
文章為作者一字一句敲出來非迹,整理實(shí)在不容易,希望各位轉(zhuǎn)載寫明出處
須知:未經(jīng)允許纯趋,不得轉(zhuǎn)載