特征工程是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。如果把机器学习模型简化一下:用已有的和 来训练一个模型,。那么,特征工程就是利用原有的去构造新的,同时配合模型调参,使得最终模型的效果达到最优。我们把通过已有数学公式:,构建新的以取得更好的建模效果,这个特征构建的过程称为特征工程。大道至简,我们日常分析的数据,尤其是互联网数据,大多数是由人类的生产活动产生的,那就离不开时间、空间的概念--字宙,“字"无限空间,“宙"无限时间。我们做特征工程也是一样,时间、空间地理特征也是重中之重,是用来刻画客观世界极其重要的维度,我们先来看一下时间特征:
一天中的哪个时间段
#一天中的哪个时间段
def get_time_period(hour):
if 0<=hour < 6:
return "凌晨"
elif 6<=hour <12:
return "上午"
elif 12<= hour <18:
return "下午"
else:
return "晚上"
get_time_period(8)
#早高峰、晚高峰
def get_peak_hour (hour):
if 7<= hour <10:
return "早高峰"
elif 17<= hour<20:
return "晚高峰"
else:
return "非高峰时段"
get_peak_hour(7)
#是否工作日
from datetime import datetime
def is_weekday(date_string):
date = datetime.strptime(date_string,'%Y-%m-%d')
if date.weekday() <5: # Monday to Friday are:considered weekdays(0 to 4)
return True
else:
return False
is_weekday( '2023-01-16' )
#一周中的星期几
from datetime import datetime
def get_day_of_week(date_string):
date = datetime.strptime(date_string, '%Y-%m-%d')
return date.strftime("%A")# 返回星期几的字符串表示,比如"Monday"、"Tuesday"等
get_day_of_week( '2023-01-16')