泰迪杯数据挖掘挑战赛—机器学习(一)

机器学习(一)

之前文章
一、数据预处理(一)
二、数据预处理(二)
之前的两篇文章主要讲解了在需要做的准备工作,数据预处理。数据处理完成之后,我们接下来就要做机器学习来预测数据了。

数据不平衡处理

需要注意:这次的A题,在数据上是非常失衡的
在这里插入图片描述

从图中可以看出,造假公司与非造假公司数量相差极大,样本数据严重失衡。严重失衡的样本将会导致在后面的机器学习中,使得学习结果更加偏向于非造假公司,导致预测结果出现较大的偏差。本题在处理数不平衡时主要是考虑了下采样算法与过采样算法。

过采样处理

过采样主要是通过合成少数类样本以此来达到数据平衡
在这里插入图片描述
在本次研究中采样过采样方法处理样本不均衡问题,因为制造业的数据量较大,使用过采样能够更好的利用数据。
代码:

#导入相应的包
import pandas as pd
from sklearn.model_selection import train_test_split
from collections import Counter
from imblearn.over_sampling import SMOTE
from collections import Counter
#导入数据
data = pd.read_excel('前五年数据_30.xlsx')

x = data.iloc[:,1:-1]
y = data.iloc[:,-1]
# # 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.40)
x_trian = pd.DataFrame(x_train)
x_test = pd.DataFrame(x_test)
y_train = pd.DataFrame(y_train)
y_test = pd.DataFrame(y_test)
#查看训练集合测试集中 flag的分类情况
print('训练集中因变量 FLAG 分类情况:{}'.format(Counter(y_train["FLAG"])))
print('测试集因变量 FLAG 分类情况:{}'.format(Counter(y_test['FLAG'])))


sos = SMOTE(random_state=0)
x_train_smote, y_train_smote = sos.fit_resample(x_train, y_train)
print('SMOTE过采样后,训练集 y_sos 中的分类情况:{}'.format(Counter(y_train_smote["FLAG"])))
x_train_smote.to_excel('x_train_smote.xlsx')
y_train_smote.to_excel('y_train_smote.xlsx')
x_test.to_excel('x_test.xlsx')
y_test.to_excel('y_test.xlsx')

总结

数据挖掘漫漫长路,需要 一步一个脚印走踏实了才能得出一个好的结果,,,

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Champion.XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值