数据挖掘实战(一)—数据分析

本文详细介绍了一种从数据集中分离标签并进行训练集、测试集划分的方法,同时深入探讨了数据清洗过程,包括无关值去除、缺失值处理及文本值的one-hot编码等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 数据集准备
    status表示标签,但是它作为一个特征维度混入到特征列表中,要先将它找出来赋给标签,并按照约定规则将数据分为训练集和测试集
import pandas as pd
from sklearn.model_selection import train_test_split
data = pd.read_csv('venv\data.csv', encoding = 'gb18030')
print(data.shape)
print(data['status'])
Y=data['status']
X=data.drop('status',axis=1)
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.3)
  1. 数据清洗
    (1)无关值去除
    bank_card_no一列的所有特征值全部为“卡号1”,认为对最终的任务没有意义,将这一列去除。

(2)缺失值处理
“student_feature”一列的特征值除了1就是NA,根据数据分布,判定其他的缺失值大概率为1,因此该特征意义不大,也将这一列去除。

“cross_consume_count_last_1_month”一列有一部分缺失值,其他值有几种不同的值,不便推测出缺失值,因此,将该特征值为空的一条数据删除。

for i in range(len(X)):
    if np.isnan(data['cross_consume_count_last_1_month'][i]):
        X = X.drop(i)
        Y=Y.drop(i)

如1580行,大部分为缺失值,则这一条数据意义不大,将此行删除。

(3)文本值处理
reg_preference_for_trad特征只有“一线城市””二线城市“”三线城市“”境外“四种,使用one-hot编码
对于id_name,全是不同的文字,但发现名字与编号一一对应,可以先将名字一列删除,处理完成后再用查表方式对应找到id_name.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值