假设我们有下面这个DataFrame,两列为id和texts:
id texts
0 Array("a", "b", "c")
1 Array("a", "b", "b", "c", "a")
texts中的每一行都是一个元素为字符串的数组表示的文档...the, red, baloon]
1 [Mary, had, a, little, lamb]
对raw列应用StopWordsRemover可以得到过滤后的列:
id raw filtered
0...,实际就是将字符串与数字进行一一对应,不过这个的对应关系是字符串频率越高,对应数字越小,因此出现最多的将被映射为0,对于未见过的字符串标签,如果用户选择保留,那么它们将会被放入数字标签中,如果输入标签是数值型...,它可以同时自动判断那些特征是类别型,并将其映射到类别索引上,如下:
接收类型为Vector的列,设置参数maxCategories;
基于列的唯一值数量判断哪些列需要进行类别索引化,最多有maxCategories...,类似R中的公式用于线性回归一样,字符串输入列会被one-hot编码,数值型列会被强转为双精度浮点,如果标签列是字符串,那么会首先被StringIndexer转为double,如果DataFrame中不存在标签列