Kaggle案例精选——电信客户流失预测(Telecom Customer Churn Prediction)Part Two:数据标准化;主成分分析机器可视化;相关分析与热力图;客户画像与雷达图

本文详述了Kaggle上的电信客户流失预测案例,包括数据预处理中的数值型数据标准化,主成分分析(PCA)的可视化,通过热力图展示了变量的相关性,其中总消费与存续期间等变量显示出强烈的正相关性。PCA结果显示,两个主成分可区分客户流失,而雷达图分析发现未开通网络服务的客户更容易流失,无纸化账单可能导致客户误解并流失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继续之前的内容。

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[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值