use*_*546 3 apache-spark apache-spark-sql apache-spark-ml apache-spark-mllib
在我使用VectorAssembler()来合并一些OneHotEncoded分类功能之前...我的数据框看起来像这样:
| Numerical| HotEncoded1| HotEncoded2
| 14460.0| (44,[5],[1.0])| (3,[0],[1.0])|
| 14460.0| (44,[9],[1.0])| (3,[0],[1.0])|
| 15181.0| (44,[1],[1.0])| (3,[0],[1.0])|
Run Code Online (Sandbox Code Playgroud)
第一列是数字列,另外两列表示OneHotEncoded分类特征的转换数据集.应用VectorAssembler()后,我的输出变为:
[(48,[0,1,9],[14460.0,1.0,1.0])]
[(48,[0,3,25],[12827.0,1.0,1.0])]
[(48,[0,1,18],[12828.0,1.0,1.0])]
Run Code Online (Sandbox Code Playgroud)
我不确定这些数字是什么意思,也无法理解这个转换后的数据集.关于这个输出意味着什么的一些澄清会很棒!
此输出不是特定于VectorAssembler.它只是o.a.s.ml.linalg.SparseVector(o.a.s.mllib.linalg.SparseVector在Spark <2.0中)的字符串表示形式:
所以(48,[0,1,9],[14460.0,1.0,1.0])代表一个长度为48的向量,有三个非零项:
几乎相同的描述也适用于HotEncoded1与HotEncoded2和Numerical仅仅是一个标量.在没有看到元数据和构造函数的情况下,不可能分辨很多,但编码变量应该具有44和3或45和4级别(取决于dropLast参数).
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |