Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark MLlib软件包重量_Apache Spark_Machine Learning_Pyspark_Apache Spark Mllib - Fatal编程技术网

Apache spark Spark MLlib软件包重量

Apache spark Spark MLlib软件包重量,apache-spark,machine-learning,pyspark,apache-spark-mllib,Apache Spark,Machine Learning,Pyspark,Apache Spark Mllib,我正试图在pyspark中运行带有测试机器学习数据集的Spark MLlib包。我将数据集分为一半训练数据集和一半测试数据集。下面是我构建模型的代码。然而,它显示了NaN的重量,NaN。。所有因变量。不知道为什么。但是当我尝试用StandardScaler函数标准化数据时,它就起作用了 model = LinearRegressionWithSGD.train(train_data, step = 0.01) # evaluate model on test data set valuesA

我正试图在pyspark中运行带有测试机器学习数据集的Spark MLlib包。我将数据集分为一半训练数据集和一半测试数据集。下面是我构建模型的代码。然而,它显示了NaN的重量,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)]

尝试缩放功能

通过缩放到单位方差和/或使用训练集中样本的列摘要统计信息删除平均值来标准化特征。这是一个非常常见的预处理步骤


标准化可以提高优化过程中的收敛速度,还可以防止方差非常大的特征在模型训练过程中产生过大的影响。由于您有一些大的变量(例如:收入)和一些小的变量(例如:客户数量),这应该可以解决您的问题。

这是一个标准数据集吗?Hi Rishi,是的,这是一个有9个预测变量的标准数据集。是因为SGD对特征缩放非常敏感吗?我有一些大数值的变量和一些小数值的变量(例如,一个因变量是平均总收入1英里,另一个是平均客户数5英里),所以我需要对每个变量进行缩放?啊,好了!这应该行得通。我刚刚在我的回答中发布了这个。嗨,Rishi,谢谢你的回答。我尝试使用StandardScaler来缩放每个变量。然而,当我将预测误差(RMSE)与其他ML包(如sklearn)进行比较时,我得到了一个显著的更高的误差。请注意,如果我对StandardScaler有任何错误,请确保。我已将缩放代码附加到我的答案中。