继续之前的内容。
4 Data Preprocessing:数据预处理+其他变量信息展示
4.1 数据预处理
# 数据预处理
from sklearn.preprocessing import LabelEncoder, StandardScaler
# 客户ID列
Id_col = ['customerID']
# 目标列
target_col = ['Churn']
# 分类变量列
cat_cols = telcom.nunique()[telcom.nunique()<6].keys().tolist()
cat_cols = [x for x in cat_cols if x not in target_col]
# 数值变量列
num_cols = [x for x in telcom.columns if x not in cat_cols+target_col+Id_col]
# 二元类型列
bin_cols = telcom.nunique()[telcom.nunique()==2].keys().tolist()
# 多元类型变量列
multi_cols = [i for i in cat_cols if i not in bin_cols]
# 对二元类型列的表情进行解析(label encoding)
le = LabelEncoder()
for i in bin_cols:
telcom[i] = le.fit_transform(telcom[i])
# 复制多元类型列
telcom = pd.get_dummies(data=telcom, columns=multi_cols)
# 对数值型数据进行标准化
std = StandardScaler()
scaled = std.fit_transform(telcom[num_cols])
scaled = pd.DataFrame(scaled, columns=num_cols)
# 将原始的数值型列删除,将进行标准化之后的数值列与原数据表合并
df_telcom_og = telcom.copy()
telcom = telcom.drop(columns=num_cols, axis=1)
telcom = telcom.merge(scaled, left_index=True, right_index=True, how='left')
以上代码无结果输出
- 作用是将变量按照不同的类型进行划分,进行数值型数据的标准化操作
- 为下文的变量信息总览、PCA(主成分分析)和相关分析做铺垫
4.2 变量信息总览
summary = (df_telcom_og[[i for i in df_telcom_og.columns if i not in Id_col]].describe().transpose().reset_index())
summary = summary.rename(columns={
'index':'feature'})
summary = np.around(summary, 3)
val_list = [summary[