MLlib的大部分示例。列车正在使用从libsvm文件加载的数据。然而,对于我的情况,我从hive加载数据并将其直接存储在dataframe中。
我想知道如何组织我的数据框架(如生成标签部分和特征部分),使其直接被模型使用?我不想将数据框存储回libsvm文件以供将来的训练,但如果有必要,也感谢如何做到这一点。
谢谢你。
============ UPDATE ========
例如,我有一个像下面这样的数据框架:
feature1 | feature2 | feature3 | feature4 | target
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')
您可以通过创建LabeledPoints的RDD来做到这一点。看一下这个例子。在本例中,parts(0)是您的目标变量,而parts(1)包含一个以空格分隔的特性列表。