3.1數值型特徵-數值變換、非線性變換、編碼
3.2 無監督降維pca
3.3計算型變換
3.4特徵篩選
3.4 索引恢復
1.log變換:
[ x-min(x)]/[max(x)-min(x)],最大最小值受異常點影響,魯棒性差,比較適合傳統精確資料場景
from sklearn.preprocessing import minmaxscaler
mm_scaler = minmaxscaler()
fare_trans = mm_scaler.fit_transform(df_train[[『fare』]])
注意:概率模型不需要歸一化,只與變數分布和變數直接的條件概率相關,與變數值無關,如決策樹、隨機森林rf。另:樹模型不能用梯度下降,樹模型是尋找最優**點完成。
3.標準化standardscaler
( x-μ)/σ x原始特徵值,μ樣本均值,σ樣本標準差,對現有樣本進行估計,對樣本足夠多的情況下比較穩定,有一定魯棒性,可以適應嘈雜大資料場景
from sklearn.preprocessing import standardscaler
std_scaler = standardscaler()
fare_std_trans = std_scaler.fit_transform(df_train[[『fare』]])
4.統計值 最大、最小值、分位數
max_age = df_train[『age』].max()
min_age = df_train[『age』].min()
age_quarter_1 = df_train[『age』].quantile(0.25) #1/4分位數
age_quarter_3 = df_train[『age』].quantile(0.75) #3/4分位數
5.多項式特徵變換
a.目標是將特徵兩兩組合起來,使得特徵和目標變數直接的關係更接近線性,提供**效果
df_train.loc[:,『famili_size』] = df_train[『sibsp』]+df_train[『parch』]+1
b.高次特徵與交叉特徵polynomialfeatures
from sklearn.preprocessing import polynomialfeatures
poly = polynomialfeatures(degree=2)
ploy_fea = poly.fit_transform(df_train[[『sibsp』,『parch』]])
c.peason相關係數
當pearson相關係數低於0.4,則表明變數之間存在弱相關關係;當pearson相關係數在0.4~0.6之間,則說明變數之間存在中度相關關係;當相關係數在0.6以上時,則反映變數之間存在強相關關係
import matplotlib.pyplot as plt
import seaborn as sns
data_cor = data.corr() #peason相關係數
sns.heatmap(data_cor,annot = true) # 相關性熱力圖annot顯示為數字
6.離散化即類別化
減少雜訊干擾,類別化特徵值,如年齡段而不是年齡對應的屬性pandas cut
df_train.loc[:,『fare_cut』] = pd.cut(df_train[『fare』],5) #將fare特徵切分成4個區間
df_train[『far_cut』].unique() #檢視區間值
1、獨熱編碼 onehot encoding
用二進位制位表示某個定性特徵出現與否,無序特徵,(labelencoder為有序型)
2、連續數值編碼ordinalencoder/labelencoder
3、啞變數 pandas get_dummies
embarked_oht = pd.get_dummies(df_train[[『embarked』]])
loans = pd.concat([loans,embarked_oht],axis=1)#將啞變數連線原資料
1、pca
點到原點距離已定,所以如果點到線的距離越短的話,垂足和垂足之間距離可以最大分散化
2、nnf
1、距離變換
2、相似度變換
3、核函式變換
1、低方差移除
2、單變數特徵篩選
3、特徵重要度篩選
異常資料如果不篩選出將影響後面模型,導致偏差,篩選異常特徵樣本方法有兩個常用方法聚類和異常點檢測。
聚類:用kmeans聚類將訓練樣本分層若干簇,如果乙個簇裡的樣本數很少且簇質心和其他簇距離很遠,那麼這個簇裡很有可能存在異常特徵樣本。
異常點檢測:用iforest或one class svm使用異常點堅持的機器學習演算法過濾異常點
篩查出的異常點需要進一步結合業務場景最終確認是否異常。
for i in [train_x,test_x]:
i.index = range(i.shape[0])
train_x.head()
資料探勘 特徵工程
特徵工程 常見的特徵工程包括 總結 1 特徵工程的主要目的是將資料轉換為能更好地表示潛在問題的特徵,從而提高機器學習的效能。比如,異常值處理為了去除雜訊,填補缺失值可以加入先驗知識等。2 特徵構造屬於特徵工程的一部分,目的是為了增強資料的表達。3 如果特徵是匿名特徵,並不知道特徵相互之間的關聯性,這...
資料探勘之特徵工程
標籤編碼與獨熱編碼 onehotencoder獨熱編碼和 labelencoder標籤編碼 資料探勘的基本流程 多項式特徵 特徵構建 生成多項式特徵 對於特徵離散化,特徵交叉,連續特徵離散化非常經典的解釋 資料預處理與特徵選擇 特徵工程到底是什麼?機器學習中的資料清洗與特徵處理綜述 sklearn ...
資料探勘之特徵工程
是對原始資料進行一系列工程處理,將其提煉為特徵,作為輸入供演算法和模型使用。從本質上來講,特徵工程是乙個表示和展現數 據的過程。在實際工作中,特徵工程旨在去除原始資料中的雜質和冗餘,設計更 高效的特徵以刻畫求解的問題與 模型之間的關係。特徵工程有很多的方法,其中比較常見的有 為了消除資料特徵之間的量...