实习篇 - 特征重要度判断

本文介绍了如何使用随机森林法和逻辑回归法来评估数据特征的重要性。首先,从txt文件转换并清洗数据,处理缺失值,然后通过随机森林的节点分裂次数和损失减少量,以及逻辑回归的beta值和t值/P值来排序特征的重要性。这是一个数据分析实习任务的实践总结。
摘要由CSDN通过智能技术生成

任务:利用随机森林法和随机逻辑回归法对数据特征的重要程度进行排序——因子重要度审查

1、获取数据

数据可以是多种形式存储的,可能是txt或者csv,如果是txt的可以先转换为dataframe数据格式写入csv文件(最好是这样,因为要不停的调试,写成csv文件,后面调试直接读取csv就行了),txt转datafram百度一下有很多方法,注意一下缺失值最好在转换过程中处理为numpy.nan,字符串切割也要注意一下。这里结束,应该获得一个dataframe格式的数据,代码:

rfm = {'高价值': 1, "发展": 2, '潜力': 3, '维系': 4, '低价值': 5, '新用户': 6, '流失用户': 7}
def txt_to_csv(txt_path, csv_path):
    data = []
    with open(txt_path, 'r') as tx:  # 读取txt文件
        for line in tx:  #依次循环处理每行数据,即每个样本数据
            line = line.strip()[:-1]  # 去前后空格和换行
            line_list = line.split('","')  # 按这个分割
            try:  #这里是有一个枚举值,不舍得丢掉,给他们替换为数值,应该会有更好的方法
                line_list[30] = rfm[line_list[30]]
            except:
                pass
            for i in range(len(line_list)):  #对每个特征处理,如果是缺失值以np.nan代替
                test_name = line_list[i]
                if line_list[i] == '':
                    line_list[i] = np.nan
                # if i == :  # 如果是乘客rfm模型分类

            data.append(line_list)

    df = DataFrame(data)  # 直接将list转换为dataframe
    # 使用DataFrame.index = [newName]写入列名
    name = ['id_last_call_orders_passenger', 'age_level', 'amt_bad_debt_gulf_fast', 'city_id_resident1', 'cnt_finish_orders_passenger',
            'company', 'consume_ability', 'consume_index', 'consume_rank', 'consume_stability', 'credit_risks_grade', 'credit_risks_score',
            'has_car_probability', 'hotspot', 'is_apply_manhattan', 'is_businessman', 'is_cert', 'is_foreigner_passenger', 'is_hk_phone',
            'is_tourist', 'last_call_time_passenger', 'level_id', 'marital_status_passenger',
            'p_gender', 'passenger_auth_state_en', 'passenger_birth_year', 'passenger_commute_category',
            'passenger_id', 'passenger_os_type', 'passenger_profile_occupation', 'passenger_rfm_type', 'passenger_with_car_probablity',
            'prob_allopatry_passenger', 'probabilit
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值