如何使用 Apache Spark 在 Python 中移动标签
How to shift labels in Python using Apache Spark
我正在尝试移动 LabeledPoint 的标签,以便它们从 0 开始。现在 parsedDataInit.take(1) 在底部的代码之前看起来像这样:
[LabeledPoint(2001.0,[0.884123733793,0.610454259079,0.600498416968,0.474669212493,0.247232680947,0.357306088914,0.344136412234,0.339641227335,0.600858840135,0.425704689024,0.60491501652,0.419193351817])]
标签是年份,例如2001.0是最大年份,1922.0是最小年份。差异是 89.0,我想做的是移动标签,使它们从 0 开始,使新的 minYear 0 和新的 maxYear 89 保持相同的功能。我是 apache spark 的新手,非常感谢任何帮助。提前致谢!这是我的代码:
parsedData = parsedDataInit.map(lambda lp: lp.label) # This is where I'm having trouble
print type(parsedData.take(1)[0])
print '\n{0}'.format(parsedData.take(1))
您只需从每年中减去最小值。
def normalize(data):
labels = data.map(lambda lp: lp.label)
minLabel = labels.min()
return data.map(
lambda lp: LabeledPoint(lp.label - minLabel, lp.features))
基于@Daniel 对问题的单行解决方案(不创建任何新函数):
parsedData = parsedDataInit.map(lambda lp:LabeledPoint(lp.label - minYear, lp.features))
我正在尝试移动 LabeledPoint 的标签,以便它们从 0 开始。现在 parsedDataInit.take(1) 在底部的代码之前看起来像这样:
[LabeledPoint(2001.0,[0.884123733793,0.610454259079,0.600498416968,0.474669212493,0.247232680947,0.357306088914,0.344136412234,0.339641227335,0.600858840135,0.425704689024,0.60491501652,0.419193351817])]
标签是年份,例如2001.0是最大年份,1922.0是最小年份。差异是 89.0,我想做的是移动标签,使它们从 0 开始,使新的 minYear 0 和新的 maxYear 89 保持相同的功能。我是 apache spark 的新手,非常感谢任何帮助。提前致谢!这是我的代码:
parsedData = parsedDataInit.map(lambda lp: lp.label) # This is where I'm having trouble
print type(parsedData.take(1)[0])
print '\n{0}'.format(parsedData.take(1))
您只需从每年中减去最小值。
def normalize(data):
labels = data.map(lambda lp: lp.label)
minLabel = labels.min()
return data.map(
lambda lp: LabeledPoint(lp.label - minLabel, lp.features))
基于@Daniel 对问题的单行解决方案(不创建任何新函数):
parsedData = parsedDataInit.map(lambda lp:LabeledPoint(lp.label - minYear, lp.features))