特征的选择_02:RFormula

本文介绍了Spark2.1.0中RFormula的使用,用于特征选择和线性模型构建。RFormula支持R语法,如~、.、:、+和-。举例说明了如何通过y ~ a + b和y ~ a + b + a:b - 1创建线性模型。RFormula可以处理字符串和数值类型的特征,进行One-hot编码和类型转换。在无标签列的情况下,RFormula会根据公式自动生成标签。示例代码展示了如何用RFormula处理数据,创建特征列和标签列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.RFormula解释

使用RFormula选择特征列在Spark2.1.0版本只支持一部分R操作,包括:~’, ‘.’, ‘:’, ‘+’, and ‘-‘.

    ~ separate target and terms  分割标签与特征
    + concat terms, “+ 0” means removing intercept 将两个特征相加
    - remove a term, “- 1” means removing intercept 减去一个特征
    : interaction (multiplication for numeric values, or binarized categorical values) 将多个特征相乘变成一个特征
    . all columns except target 选取所有特征

什么,,,我没听懂。。。

举个小例子,假设有a,b两列作为2个特征,y是应变量。
y ~ a + b 表示建立这样的线性模型:y ~ w0 + w1 * a + w2 * b ,其中w0是截距。
y ~ a + b + a:b - 1 表示线性模型:y ~ w1 * a + w2 * b + w3 * a * b
(-1表示去掉截距,所以模型中没有w0了,a:b表示将ab两个特征相乘生成新的特征)

也就是说,我们可以通过这些简单的符号去表示线性模型。
RFormula可以生成多组列向量来表示特征,和一组double或string类型的列来标签。
就像在R中使用公式来建立线性模型一样,字符串类型的特征会被One-hot编码,数值类型的特征会被转换成double类型。如果标签列是字符串类型,会先将它转换成双精度的字符串索引。
如果在dataframe中不存在标签列,将会根据公式中的自变量去生成标签应变量作为输出。

什么,,,还是没懂。。。
来看下面的例子,假设有一个4列的dataframe:

id
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值