Task3 特征工程

前期工作:
mac上安装homebrew 为后面python里需要的 作准备
mac安装参考在下图链接:
homebrew最新国内源安装方法(2020年3月)
然后在MAC平台安装lightgbm
跟着下文链接走就能安装完成
MAC平台安装lightgbm遇到的各种坑
Mac安装LightGBM官方文档填坑指南(附virtulenv虚拟环境安装方法)

异常值
异常值也称为离群点,就是那些远离绝大多数样本点的特殊群体,通常这样的数据点在数据集中都表现出不合理的特性。如果忽视这些异常值,在某些建模场景下就会导致结论的错误(如线性回归模型、K均值聚类等),所以在数据的探索过程中,有必要识别出这些异常值并处理好它们。

检测到了异常值,我们需要对其进行一定的处理。而一般异常值的处理方法可大致分为以下几种:
删除含有异常值的记录:直接将含有异常值的记录删除;
视为缺失值:将异常值视为缺失值,利用缺失值处理的方法进行处理;
平均值修正:可用前后两个观测值的平均值修正该异常值;
不处理:直接在具有异常值的数据集上进行数据挖掘;
是否要删除异常值可根据实际情况考虑。因为一些模型对异常值不很敏感,即使有异常值也不影响模型效果,但是一些模型比如逻辑回归LR对异常值很敏感,如果不进行处理,可能会出现过拟合等非常差的效果。

箱线图:
参考此链接

它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的最大值、最小值、中位数和两个四分位数;然后, 连接两个四分位数画出箱子;再将最大值和最小值与箱子相连接,中位数在箱子中间。

图片内容显示:
中位数来衡量整体情况比较稳定
箱子短 数据分布就比较集中
train.columns//查看列属性分类`

详细可以参照此例

# 训练集和测试集放在一起,方便构造特征
train['train']=1
test['train']=0
data = pd.concat([train, test], ignore_index=True, sort=False)
//ignore_index=True将索引值忽略
//sort=False 不更改列的顺序

部分程序解释可参考此链接

# 从邮编中提取城市信息,因为是德国的数据,所以参考德国的邮编,相当于加入了先验知识
data['city'] = data['regionCode'].apply(lambda x : str(x)[:-3])//保留后三位

apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。
lambda是匿名函数,即不再使用def的形式,可以简化脚本,使结构不冗余何简洁
如:

a =  lambda x  : x + 1 
a(10)
 
11

python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算。
info()函数
功能: 给出样本数据的相关信息概览 :行数,列数,列索引,列非空值个数,列类型,内存占用

过滤式(filter)

它是先设计一个过滤方法进行特征选择,再去训练学习器。而这个过滤方式是设计一个“相关统计量”,去对特征进行计算,最后设定一个阈值去进行选择。
相关统计量计算:

对于每个样本xi,他都会做以下事情。

找出同类中,最邻近的样本x1;在异类中,找出最邻近的x2。

如果xi与x1更近,说明特征是对同类异类有益的,会增大相对应的统计量;反之,如果xi与x2更近,说明特征起到副作用,会减少相对应的统计量。(当然有时候也不需要把整个训练集全用上,可以用采样的办法进行计算)

包裹式选择(wrapper)

它与过滤式不同,它会考虑后续的学习器。它会把学习器的性能作为评价准则。

1.LVW

第一步:随机选出特征集;

第二步:计算相关误差,如果误差比原本的小,或者误差相当但是特征数比之前的少,则把子集留下。
2.RFE
第一步:对初始特征进行训练,得到权重

第二步:提出权重最小的特征,构成新的集合

第三步:不断重复,知道满足停止条件为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
特征工程是指从原始数据中提取特征以供机器学习算法和模型使用的一项工程活动。在Matlab中进行特征工程时,可以使用不同的方法来处理特征。 其中,对于定性特征(也称为分类特征),需要将其转换为定量特征(也称为数值特征),因为某些机器学习算法和模型只接受定量特征的输入。一种常用的方法是使用OneHot编码,即为每一种定性值指定一个定量值。这种方式避免了手动调参的工作,并且对于线性模型来说,使用OneHot编码后的特征可以达到非线性的效果。 另外,在特征工程中还需要注意数值问题。例如,如果输入的数值很大,而有效权值很小,可能导致数值精度问题。在Matlab中,可以通过合适的数值处理方式来解决这个问题,确保数值计算的准确性。 总结起来,在Matlab中进行特征工程包括从原始数据中提取特征,并使用合适的方法处理定性特征和数值精度问题,以提高机器学习算法和模型的性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [特征工程系列(一):特征工程的概念/特征的处理](https://blog.csdn.net/Myordry/article/details/105347182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值