MLlib.train的大多数示例都使用从libsvm文件加载的数据。但是,对于我的情况,我从hive加载数据并直接将其存储在数据框中。
我想知道如何组织我的数据框(比如生成标签部分和特征部分),让模型直接使用它?我不想将数据帧存储回libsvm文件以供将来培训,但如果有必要,也欢迎如何做到这一点。
非常感谢。
============更新========
例如,我有一个如下数据框:
feature1 | feature2 | feature3 | feature4 |目标
1 1 2 1 1
2 1 3 5 1
1 2 1 1 0
...
我想将最后一列视为目标,将其他列视为功能,然后将其放入决策树,如下所示:
model = DecisionTree.trainClassifier(df, numClasses=2, categoricalFeaturesInfo={},
impurity='gini', maxDepth=5, maxBins=32)
我如何定义哪个列的特征或目标在" df"这里?因为对于大多数示例,df从libsvm文件加载为:
data = MLUtils.loadLibSVMFile(sc, 'data/mllib/sample_libsvm_data.txt')
答案 0 :(得分:0)
您可以通过创建LabeledPoints的RDD来实现。看看这个example。在此示例中,parts(0)是您的目标变量,而parts(1)包含空格分隔的功能列表。