目录
四、数据预处理
4-1 删除
由前面结果可知,(参考数据分析1,2)CustomerID表示每个客户的随机字符,对后续建模不影响,我这里选择删除CustomerID列;gender 和 PhoneService 与流失率的相关性低,可直接忽略。
#数据预处理
df1=df.iloc[:,2:20]
df1.drop("PhoneService",axis=1,inplace=True)
df_id=df["customerID"]
df1.head()
数据展示:
对客户的职位、月费用和总费用进行去均值和方差缩放,对数据进行标准化:使得数据方差为1,均值为0,则预测结果不会被某些维度过大的特征值主导
4-2标准化
#数据标准化
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler(copy=False)
scaler.fit_transform(df1[['tenure','MonthlyCharges','TotalCharges']])
标准化后:
4-3 箱线图
使用箱线图查看数据是否存在异常值:
第一种:
df1[['tenure','MonthlyCharges','TotalCharges']]=scaler.transform(df1[['tenure','MonthlyCharges','TotalCharges']])
df1[['tenure','MonthlyCharges','TotalCharges']].plot(kind='box',subplots=True,layout=(3,1),sharex=False,fontsize=8)
pyplot.show()
第二种:
#使用箱线图查看数据异常值
import seaborn as sns
df1[['tenure','MonthlyCharges','TotalCharges']]=scaler.transform(df1[['tenure','MonthlyCharges','TotalCharges']]