我正在尝试使用测试机器学习数据集在pyspark中运行Spark MLlib包。我将数据集分成了一半的训练数据集和一半的测试数据集。以下是构建模型的代码。然而,它显示所有依赖变量的NaN权重。无法找出原因。但是当我尝试使用StandardScaler函数标准化数据时,它可以正常工作。
model = LinearRegressionWithSGD.train(train_data, step = 0.01)
# evaluate model on test data set
valuesAndPreds = test_data.map(lambda p: (p.label, model.predict(p.features)))
非常感谢您的帮助。
以下是我用于缩放的代码。
scaler = StandardScaler(withMean = True, withStd = True).fit(data.map(lambda x:x.features))
feature = [scaler.transform(x) for x in data.map(lambda x:x.features).collect()]
label = data.map(lambda x:x.label).collect()
scaledData = [LabeledPoint(l, f) for l,f in zip(label, feature)]