我正在尝试训练一个k-均值模型,目前正处于检查特征向量内相关性的阶段。
当我对我的特征向量运行皮尔逊相关性时,我无法看到所有特征的结果。
我运行的代码是:
val cor = Correlation.corr(scoringDf, "features")
cor.show(false)
相关性运行良好,但当我尝试使用show方法查看结果时(因为correlation.cor返回Datafame对象(,结果显示为
|1.0 0.18047211468479446 0.08002566273874058 ... (5 total)
0.18047211468479446 1.0 0.02926796076983553 ...
0.08002566273874058 0.02926796076983553 1.0 ...
0.30256416877032244 0.15974389490583188 0.054692657400425136 ...
0.3408783412055776 0.13008391583866225 0.04241296238931376 ...|
有办法看到隐藏的列吗?
我也尝试过以下代码,但结果是一样的。
val Row(coeff1: Matrix) = Correlation.corr(scoringDf, "features").head
println(s"Pearson correlation matrix:n $coeff1")
编辑:
这是cor数据帧的模式
root
|-- pearson(features): matrix (nullable = false)
方法show((有几个选项,例如您可以尝试:
def show(numRows: Int, truncate: Int, vertical: Boolean): Unit
numRows显示的行数
截断如果设置为大于0,则截断字符串以截断字符,并且所有单元格都将向右对齐。
垂直如果设置为true,则垂直打印输出行(每列值一行(。
您可以查看文档。
http://spark.apache.org/docs/2.3.0/api/scala/index.html#org.apache.spark.sql.Dataset
我希望它能有所帮助。
谨致问候。
终于可以按照我想要的方式获得输出了。更改了我的代码,使其看起来像这个
val Row(coeff1: Matrix) = Correlation.corr(scoringDf, "features").head
println(s"Pearson correlation matrix:n " + coeff1.toString(10, 100000))
输出显示如下:
Pearson correlation matrix:
1.0 0.1804721146847944 0.08002566273874055 0.3025641687703226 0.34087834120557725
0.1804721146847944 1.0 0.02926796076983553 0.15974389490583193 0.13008391583866233
0.08002566273874055 0.02926796076983553 1.0 0.05469265740042514 0.042412962389313726
0.3025641687703226 0.15974389490583193 0.05469265740042514 1.0 0.241118490251708
0.34087834120557725 0.13008391583866233 0.042412962389313726 0.241118490251708 1.0