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