首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark MLlib packages NaN权重

Spark MLlib packages NaN权重
EN

Stack Overflow用户
提问于 2015-04-17 01:48:46
回答 1查看 608关注 0票数 3

我正在尝试用一个测试机器学习数据集在pyspark中运行Spark MLlib包。我将数据集分为一半的训练数据集和一半的测试数据集。下面是我构建模型的代码。但是,它显示了NaN,NaN的权重。所有因变量。找不到原因。但是,当我尝试使用StandardScaler函数标准化数据时,它会起作用。

代码语言:javascript
复制
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)))

非常感谢你的帮助。

下面是我用来进行缩放的代码。

代码语言:javascript
复制
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)]
EN

回答 1

Stack Overflow用户

发布于 2015-04-21 22:53:16

尝试缩放要素

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29682338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档