头歌(第五章 机器学习基本模型与算法在线实验闯关)
第1关:缺失值填充
任务描述
本关任务:读取“银行贷款审批数据.xlsx”表,自变量为x1-x15,决策变量为y(1-同意贷款,0-不同意贷款),其中x1-x6为数值变量,x7-x15为名义变量,请对x1-x6中存在的缺失值用均值策略填充,x7-x15用最频繁值策略填充。
#********** Begin **********#
# 读取“银行贷款审批数据.xlsx”表,自变量为x1~x15,决策变量为y(1-同意贷款,0-不同意贷款)
# 其中x1~x6为数值变量,x7~x15为名义变量
# 请对x1~x6中存在的缺失值用均值策略填充,x7~x15用最频繁值策略填充
# 最后返回填充处理后的X(即x1~x15),以及决策变量Y(即y)
import pandas as pd
def return_values():
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.drop(columns=['y'])
Y = df['y']
return X, Y
#********** End **********#
第2关:数据标准化
任务描述
本关任务:在第一关的基础上,对x1 ~ x6数值型变量作均值-方差标准化处理,需要注意的是x7~x15名义变量不需要作标准化处理。
#********** Begin **********#
#在上一关的基础上,对自变量X中的数值变量(x1~x6)作均值-方差标准化处理
# 需要注意的是x7~x15名义变量不需要作标准化处理
# 返回结果X1,数据结构为数组形式
# X1中含有标准化后的x1~x6和未标准化的x7~x15
import pandas as pd
from sklearn.preprocessing import StandardScaler
import numpy as np
def return_values():
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)
numerical_cols = ['x1', 'x2', 'x3', 'x4', 'x5', 'x6']
categorical_cols = ['x7', 'x8', 'x9', 'x10', 'x11', 'x12', 'x13', 'x14', 'x15']
scaler = StandardScaler()
df[numerical_cols] = scaler.fit_transform(df[numerical_cols])
X1 = df[numerical_cols + categorical_cols].values
return X1
#********** End **********#
第3关:支持向量机分类模型及其应用
任务描述
本关任务:基于关卡2基础上,取数据集前600条记录作为训练数据,后90条记录作为测试数据,构建支持向量机模型,输出其模型准确率和预测准确率。
#********** Begin **********#
#在上一关基础,对经过缺失值填充、数值变量标准化后的数据集,取前600条记录作为训练数据,后90条记录作为测试数据
#构建支持向量机模型,返回计算结果模型准确率rv和预测准确率r
def return_values():
import numpy as np
X1=np.load('X1.npy') #经过缺失值填充、数值变量标准化后的数据集,numpy数组690*15
Y=np.load('Y.npy') #因变量,numpy数组,690个元素
from sklearn.svm import SVC
x1 = X1[:600, :]
y1 = Y[:600]
x2 = X1[600:, :]
y2 = Y[600:]
clf = SVC(kernel='rbf')
clf.fit(x1, y1)
rv = clf.score(x1, y1)
r = clf.score(x2, y2)
return(rv,r)
#********** End **********#
第4关:逻辑回归模型及其应用
任务描述
本关任务:以澳大利亚信贷批准数据集为本关数据集,划分前600为训练数据集,后90数据为测试数据集,利用逻辑回归模型预测及输出准确率。