python调用sparkmlib_在理解python中的Spark MLlib的LinearRegressionWith...

因此,我是机器学习和Spark的新手,并且正在阅读Spark MLlibs关于回归的文档,尤其是this page处的LinearRegressionWithSGD.我在理解python代码方面有些困难.这就是我到目前为止所了解的-代码加载数据,然后形成labeledpoint.之后,建立模型,然后根据训练数据进行评估,并计算MSE.

现在让我感到困惑的是,在正常的机器学习过程中,我们首先将数据分为训练集和测试集.我们使用训练集建立模型,最后使用测试集进行评估.现在,在Spark MLlib文档的代码中,我看不到训练和测试集的任何划分.最重要的是,我看到他们使用数据构建模型,然后使用相同的数据进行评估.

代码中有我无法理解的内容吗?理解代码的任何帮助都会有所帮助.

注意:这是Spark MLlib文档页面上LinearRegressionWithSGD的代码

from pyspark.mllib.regression import LabeledPoint, LinearRegressionWithSGD, LinearRegressionModel

# Load and parse the data

def parsePoint(line):

values = [float(x) for x in line.replace(',', ' ').split(' ')]

return LabeledPoint(values[0], values[1:])

data = sc.textFile("data/mllib/ridge-data/lpsa.data")

parsedData = data.map(parsePoint)

# Build the model

model = LinearRegressionWithSGD.train(parsedData)

# Evaluate the model on training data

valuesAndPreds = parsedData.map(lambda p: (p.label, model.predict(p.features)))

MSE = valuesAndPreds.map(lambda (v, p): (v - p)**2).reduce(lambda x, y: x + y) / valuesAndPreds.count()

print("Mean Squared Error = " + str(MSE))

# Save and load model

model.save(sc, "myModelPath")

sameModel = LinearRegressionModel.load(sc, "myModelPath")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值