电商精准营销—特征工程

第1关:特征工程—类别特征

任务描述

本关任务:对类别特征进行编码 ,使其能够直接应用于模型。

相关知识

为了完成本关任务,你需要掌握: 1.类型变量的处理方法; 2.如何使用 python 进行热编码。

#coding:utf8
import pandas as pd
import os
from sklearn.preprocessing import LabelEncoder,OneHotEncoder

def one_hot(data):
    data['age']=data['age'].replace({'16-25岁':1,'26-35岁':2,'46-55岁':3,'36-45岁':4,'56岁以上':5,'未知':-1})
    id_data=data.drop(['sex'],axis=1)
    data_new3=pd.get_dummies(data['sex'],prefix='sex')
    data=pd.concat((id_data,data_new3),axis=1)
    return data
    
if __name__=='__main__':
    data=pd.read_csv('./data/User.csv',dtype={'sex':int})
    one_hot(data)

第2关:特征工程—特征提取和衍生

任务描述

本关任务:处理时间空间特征变量,提取衍生变量。

相关知识

为了完成本关任务,你需要掌握: 1.python 对时间变量处理技巧; 2.时间空间特征的处理方法。

#coding:utf8
import pandas as pd

def get_feature_action(action):
    week_actions=pd.pivot_table(action,values='time',index=['user_id','mark'],columns='type',aggfunc='count',fill_value=0).add_prefix('all_product_type_')
    week_cate_action=pd.pivot_table(action,values='time',index=['user_id','mark'],columns='cate',aggfunc='count',fill_value=0).add_prefix('all_cate_')
    week_brand_action=pd.pivot_table(action,values='time',index=['user_id','mark'],columns='brand',aggfunc='count',fill_value=0).add_prefix('all_product_brand_')
    data=pd.concat([week_actions,week_cate_action,week_brand_action],axis=1)
    data=data.reset_index()
    return data

def jiheshuju(action):
    action['last_date']=(action['mark']-action['time']).map(lambda x:x.seconds)
    result=pd.pivot_table(action,values='last_date',index=['user_id','mark'],columns='type',aggfunc='min').add_prefix('diff_time_')
    result=result.reset_index()
    return result

第3关:特征工程—特征选择

任务描述

本关任务:在已有的特征中进行特征选择。

相关知识

为了完成本关任务,你需要掌握:特征选择的原理和方法。

#coding:utf8
import pandas as pd
from numpy.core.umath_tests import inner1d
from sklearn.ensemble import RandomForestClassifier

def get_feature_importance(data):
    x=data.drop(['user_id','mark','Y'],axis=1)
    y=data['Y']
    clf=RandomForestClassifier()
    clf.fit(x,y)
    feature_importances=pd.DataFrame({'feature':x.columns,'feature_importances_':clf.feature_importances_}).sort_values(by='feature_importances_',ascending=False)
    return feature_importances
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值