不多说,直接上干货!

 

 

 

RFormula算法介绍:

       RFormula通过R模型公式来选择列。支持R操作中的部分操作,包括‘~’, ‘.’, ‘:’, ‘+’以及‘-‘,基本操作如下:

1、 ~分隔目标和对象

2、+合并对象,“+ 0”意味着删除空格

3、 :交互(数值相乘,类别二值化)

4、. 除了目标外的全部列

 

 

 

假设a和b为两列:

  1、y ~ a + b表示模型y ~ w0 + w1 * a +w2 * b其中w0为截距,w1和w2为相关系数。

  2、 y ~a + b + a:b – 1表示模型y ~ w1* a + w2 * b + w3 * a * b,其中w1,w2,w3是相关系数。

  RFormula产生一个向量特征列以及一个double或者字符串标签列。如果类别列是字符串类型,它将通过StringIndexer转换为double类型。如果标签列不存在,则输出中将通过规定的响应变量创造一个标签列。

 

 

 

示例:

假设我们有一个DataFrame含有id,country, hour和clicked四列:

id | country |hour | clicked

---|---------|------|---------

 7 | "US"    | 18  | 1.0

 8 | "CA"    | 12  | 0.0

 9 | "NZ"    | 15  | 0.0

如果我们使用RFormula公式clicked ~ country+ hour,则表明我们希望基于country和hour预测clicked,通过转换我们可以得到如下DataFrame:

id | country |hour | clicked | features         | label

---|---------|------|---------|------------------|-------

 7 | "US"    | 18  | 1.0     | [0.0, 0.0, 18.0] | 1.0

 8 | "CA"    | 12  | 0.0     | [0.0, 1.0, 12.0] | 0.0

 9 | "NZ"    | 15  | 0.0     | [1.0, 0.0, 15.0] | 0.0

 

 

 

 

  具体编程,见