由於task2打卡失誤,僅包含賽題理解,所以在task3中做乙個補充~~
eda中使用到的基本方法:
data.shape()檢視資料行列總數
data.describe()檢視均值,標準差,資料分布等
data.info()資料資訊
data.isnull().sum()檢視資料為空總數
missingno繪製缺失資料分布圖
seaborn包中sns.distplot繪圖
.skew()和.kurt()檢視偏度和峰值
.format(features,data[features].nunique())格式化輸出不同的特徵值
data.corr()檢視資料相關係數
sns.heatmap()繪製資料熱力圖
sns.facetgrid畫出輪廓,然後用map填充內容
sns.pairplot()特徵之間的相互關係視覺化
以下為多變數間的關係視覺化
fig, ((ax1, ax2), (ax3, ax4), (ax5, ax6), (ax7, ax8), (ax9, ax10)) = plt.subplots(nrows=5, ncols=2, figsize=(24, 20))
常見特徵工程處理方法:
使用箱線圖去除異常值
def box_plot_outliers(data_ser, box_scale):
"""利用箱線圖去除異常值
:param data_ser: 接收 pandas.series 資料格式
:param box_scale: 箱線圖尺度,
:return:
"""iqr = box_scale * (data_ser.quantile(0.75) - data_ser.quantile(0.25))
val_low = data_ser.quantile(0.25) - iqr
val_up = data_ser.quantile(0.75) + iqr
rule_low = (data_ser < val_low)
rule_up = (data_ser > val_up)
return (rule_low, rule_up), (val_low, val_up)
上為找出異常值函式
先做log對數化處理
from sklearn import preprocessing
min_max_scaler = preprocessing.minmaxscaler()
data['power'] = np.log(data['power'] + 1)
data['power'] = ((data['power'] - np.min(data['power'])) / (np.max(data['power']) - np.min(data['power'])))
data['power'].plot.hist()
再進行歸一化處理
data['kilometer'] = ((data['kilometer'] - np.min(data['kilometer'])) /
(np.max(data['kilometer']) - np.min(data['kilometer'])))
data['kilometer'].plot.hist()
繪製熱力圖觀察特徵相關性
未完待續...
Task 3 特徵工程
1 通過箱線圖 或3 sigma 分析刪除異常值 2 box cox轉換 處理有偏分布 3 長尾截斷 1 標準化 換為正態分佈 2 歸一化 3 針對冪律分布,可採用公式 1 x 1 median 1 等頻分桶 2 等距分桶 3 best ks 分桶 類似利用基尼指數進行二分類 4 卡方分桶 1 不處...
Task 3 特徵工程
1.異常處理 2.特徵歸一化 標準化 3.資料分桶 4.缺失值處理 5.特徵構造 1.異常處理 1 通過箱線圖 或3 sigma 分析刪除異常值 2 box cox轉換 處理有偏分布 3 長尾截斷 1 標準化 換為正態分佈 2 歸一化 3 針對冪律分布,可採用公式 1 x 1 median 1 等頻...
金融風控TASK3特徵工程
學習目標 學習特徵預處理 缺失值 異常值處理 資料分桶等特徵處理方法 學習特徵互動 編碼 選擇的相應方法 資料預處理常見方法 缺失值的填充 時間格式處理 物件型別特徵轉換到數值 異常值處理 基於3segama原則 基於箱型圖 資料分箱 固定寬度分箱b 分位數分箱離散數值型資料分箱連續數值型資料分箱 ...