educoder机器学习基本模型与算法在线实验挑战

任务描述

本关任务:读取“银行贷款审批数据.xlsx”表,自变量为x1-x15,决策变量为y(1-同意贷款,0-不同意贷款),其中x1-x6为数值变量,x7-x15为名义变量,请对x1-x6中存在的缺失值用均值策略填充,x7-x15用最频繁值策略填充。

相关知识

为了完成本关任务,你需要掌握三种缺失值处理办法:1.均值策略填充;2.中位数填充;3.最频繁值策略填充。

方法步骤

填充的数据结构要求为数组或数据框,类型为数值类型。使用Scikit-learn中的数据预处理模块进行缺失值填充的基本步骤如下:


  1. #1.导入数据预处理中的填充模块Imputer
  2. from sklearn.preprocessing import Imputer
  3. #2.利用Imputer创建填充对象imp
  4. imp = Imputer(missing_values='NaN', strategy='mean', axis=0) #创建按列均值填充策略对象
  5. '''其对象参数说明:
  6. strategy:均值(mean)、中位数(median)、最频繁值(most_frequent)三种填充方法
  7. axis=0:按列填充方式
  8. axis=1:按行填充方式'''
  9. #3.调用填充对象imp中的fit()拟合方法,对待填充数据进行拟合训练
  10. imp.fit(Data) #Data为待填充数据集变量
  11. #4.调用填充对象imp中的transform()方法,返回填充后的数据集
  12. FData=imp.transform(Data) #返回填充后的数据集FData

均值策略填充

定义待填充的数据变量data、c、C:

对C数据框中的数据采用按列均值填充,代码如下:


  1. from sklearn.preprocessing import Imputer
  2. fC=C
  3. imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
  4. imp.fit(fC)
  5. fC=imp.transform(fC)

输出:

中位数填充

对c数组中的数据采用按行中位数填充,代码如下:


  1. imp = Imputer(missing_values='NaN', strategy='median', axis=1)
  2. fc=c
  3. imp.fit(fc)
  4. fc=imp.transform(fc)

输出:

最频繁值策略填充

对data数据中的a、c列采用按列最频繁值填充进行填充,代码如下:


  1. fD=data[['a','c']]
  2. imp = Imputer(missing_values='NaN', strategy='most_frequent', axis=0)
  3. imp.fit(fD)
  4. fD=imp.transform(fD)

输出:

编程要求

根据提示,在右侧编辑器补充代码,实现缺失值填充。

测试说明

平台会对你编写的代码进行测试。


开始你的任务吧,祝你成功!

# ** ** ** ** ** Begin ** ** ** ** ** #
# 读取“ 银行贷款审批数据.xlsx” 表, 自变量为x1~x15, 决策变量为y( 1 - 同意贷款, 0 - 不同意贷款)
# 其中x1~x6为数值变量, x7~x15为名义变量
# 请对x1~x6中存在的缺失值用均值策略填充, x7~x15用最频繁值策略填充
# 最后返回填充处理后的X( 即x1~x15), 以及决策变量Y(即y)
def return_values():
  import pandas as pd
# 读取Excel文件
df = pd.read_excel('银行贷款审批数据.xlsx')
# 填充缺失值
df.fillna(df.mean(), inplace = True)
# 使用最频繁值填充名义变量
for col in df.columns[6: ]:
  df[col].fillna(df[col].mode()[0], inplace = True)
# 分离自变量和因变量
X = df.iloc[: ,: -1]
Y = df.iloc[: , -1]
# 返回结果
return (X, Y)

# ** ** ** ** ** End ** ** ** ** ** #

物联沃分享整理
物联沃-IOTWORD物联网 » educoder机器学习基本模型与算法在线实验挑战

发表评论