CQU_bigdata
CQU_bigdata copied to clipboard
LAB4 GetPoint与scoreAndLabels的内容问题
提供的源代码中GetPoint函数如下,注释说返回的是预测得分。
def GetPoint(model,point):
"""
预测并返回结果(元组)
:param model: 训练集构建的SVMWithSGD模型
:param point: 测试集数据,标准LabeledPoint类型数据
:return:(测试集预测得分,原始标签)
"""
score = model.predict(point.features)
return (score,point.label)
结合后续的scoreAndLabels推测,这里输出的应该是(预测得分,原始标签),并且指导书中也给出了输出样例:
……
-59045.132228013084 1.0
-81550.17634254562 1.0
-87393.69932070676 1.0
……
但是,当指定了threshold后(默认-90000),model.predict
返回的应该是预测的0-1值,如下:
@since('0.9.0')
def predict(self, x):
"""
Predict values for a single data point or an RDD of points
using the model trained.
"""
if isinstance(x, RDD):
return x.map(lambda v: self.predict(v))
x = _convert_to_vector(x)
margin = self.weights.dot(x) + self.intercept
if self._threshold is None:
return margin
else:
return 1 if margin > self._threshold else 0
不知道如何输出指导书中的原始预测值,是将threshold置None了吗先?
感谢反馈~是的,scoreAndLabels示例输出是没有设置threshold的。这里描述不太清楚,后面我们整个大数据实验还要进行一次较大修正,特别是ex4实验将会被替换或者大改。 另外请问一下,我们大数据这门课已经结课了,冯老师班已经实验和答辩都结束了。你是尚老师大数据班的吗?
感谢反馈~是的,scoreAndLabels示例输出是没有设置threshold的。这里描述不太清楚,后面我们整个大数据实验还要进行一次较大修正,特别是ex4实验将会被替换或者大改。
另外请问一下,我们大数据这门课已经结课了,冯老师班已经实验和答辩都结束了。你是尚老师大数据班的吗?
是的,因为昨天交实验报告,检查了一下,才注意到这个问题~好的,助教辛苦了