ML竞赛步骤

参与机器学习竞赛时,通常需要对数据集进行一系列处理,包括检查标签分布、数据完整性、缺失值处理等。首先,查看训练集标签分布以评估正负样本平衡情况和数据集打乱状态,防止潜在的数据泄露。接着,获取数据集基本信息和统计信息,检查列名,处理缺失值。通过特定代码片段,可以检测和移除缺失值,并对不同标签的特征分布进行对比。此外,可以生成新特征增强数据表示。在模型构建阶段,LightGBM(lgb)常作为二分类问题的首选模型,其详细内容将在另一篇文章中单独讨论。
摘要由CSDN通过智能技术生成

在进行数据竞赛时候,拿到一个数据集,应该进行如下操作:

  1. 查看train中label的分布,主要查看正负样本是否均衡,以及主办方是否有将数据集打乱,如果数据集样本没有打乱,可能会存在data leak,这一步需要用到的代码有如下
train['target'].value_counts()  #主要查看,存在的target的类别以及相对应的出现频数
sns.countplot(train['target'])  # 主要是可视化,target的类别以及相对应的出现频数

sns.stripplot(x='y', y = 'ID', data = train)
plt.show()  #这两行代码是用来check训练集中的数据是否有被打乱
  1. 查看train的基本信息以及统计信息内容,代码如下:
train.info()
train.describe()

我们还可以以下的代码,来查看train中的columns的名字

train.columns
train.columns.values
  1. 因为现实中的数据,都比较脏,因此我们需要查看数据集中是否有NA存在,我们可以使用
isnull().sum()

需要注意的是,isnull().sum()isnull().any()的返回值是不一样的。
4. isnull().sum() 的返回值是每一列存在多少个NA。
5. isnull().any() 的返回值是对每一列是否存在NA的布尔判断。

有时候,我们希望对整个dataframe有一个全局的感知,整个时候,我们可以借鉴如下代码:

def miss_data(df):
		miss_val = df.isnull().sum()
		total = df.isnull().count()
		per = (miss_val / total) * 100
		tt = pd.concat([total, per
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值