基于R语言的用户征信行为分类预测模型搭建总结

数据集:15万行数据量,11个数据维度。目标变量为是否有重大违约倾向(定义为超过90天没有还贷)


建模流程:

1. 缺失值处理

发现数据集的数据缺失主要集中在亲属数量和月收入两个属性。其中,亲属数量却缺失属性为3000多条,且这3000多条记录中,月收入属性也同时缺失,故直接删除。

对于有1万多条缺失记录的月收入,采用线性回归和多重插补填补缺失值。

进行线性回归时,可能由于其他自变量与月收入的相关关系不大,所以尽管拟合指标非常好,真实的拟合值还是有非常大的误差。

对于线性回归而言,数据分布符合基本假设是很重要的。在这里,主要采取了如下三个方法:

(1)检验同方差性

library(car)

ncvTest(mymodel)

可根据提示的Suggested power transformation值,对响应变量进行幂次变换,经过变换,非恒定的误差方差变得平稳。这一改进举措,使R-square从0.7上升到0.9。

(2)检验因变量与自变量间的线性关系

library(car)

crPlots(mymodel)

开始,图形显示非线性。在非线性的属性“age”中,我对比了添加年龄的二次项和log项,结果发现添加二次项后的模型中,年龄与因变量完美符合线性关系。同时,添加对数项的模型也比单纯的age线性项效果更好。这一举措,使R-square从0.9提升到0.97。
(3)去除噪声值

这一项举措也是影响很大,但是没有前两者的改变那么根本和激动人心。噪声值的处理非常艺术,在大数据量中,可能会有很多噪声值,但是最好不要全部都去掉。删不删除,删除几个,都是要拿捏的。我认为,这里主要还是要考虑一个性价比的问题。比如,当我删除前三个cook值最大的离群点时,模型的提升非常显著(当时拟合优度还比较低),但当继续删除时,发现模型的提升并没有那么显著了。那么这时,我认为就应当适可而止。

如果在噪声值处理这部分,有相关的数据处理包可以将“适可而止”转化为定量地处理噪声值时,还请各位同行告知。


2.异常值处理

首先,利用箱线图删除明显异常点。

boxplot(mymodel$my_attr)

或根据业务情况经过summary数据,查看数据异常值,选择删除。

接下来的量化筛选,个人比较喜欢用的方法是使用线性回归模型的cook值。

这个数据集的异常值非常的多。仅Debt_ratio一项,大于1的数据项就超过了20%(这里是用 quantile()定位查看的)。由于无从得知异常原因和数据来源,也由于时间关系,直接选择删除。其实如果时间充裕,可以考虑线性回归替换,或是均值替换等等,

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于互联网征信数据(simudata.csv),我们可以使用Python中的Scikit-learn库来创建分类模型。以下是一个简单的步骤: 1. 加载数据集 首先,需要使用pandas库来加载数据集。simudata.csv是一个逗号分隔的文件,因此我们可以使用pandas的read_csv()函数来加载数据集。 ```python import pandas as pd data = pd.read_csv('simudata.csv') ``` 2. 数据预处理 接下来,需要对数据进行预处理,包括数据清洗、特征选择、特征缩放等。在这里,我们将简单地使用所有的特征,并对其进行缩放。 ```python from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X = scaler.fit_transform(data.drop(['label'], axis=1)) y = data['label'] ``` 3. 创建模型 在这里,我们将使用逻辑回归算法来创建分类器。 ```python from sklearn.linear_model import LogisticRegression clf = LogisticRegression() ``` 4. 训练模型 接下来,我们将使用训练数据来训练分类器。 ```python clf.fit(X_train, y_train) ``` 5. 评估模型 最后,我们将使用测试数据来评估分类器的性能。 ```python from sklearn.metrics import accuracy_score y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy: %.2f%%" % (accuracy * 100.0)) ``` 以上是一个简单的步骤,可以使用Scikit-learn库创建分类模型来对互联网征信数据进行分类。当然,具体的步骤和方法还需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值