如何用python在apachespark mllib中设置logistic回归的优化器

2024-09-23 06:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在开始对apachespark mllib进行一些测试

def mapper(line):
    feats = line.strip().split(',')
    label = feats[len(feats)-1]
    feats = feats[:len(feats)-1]
    feats.insert(0,label)
    return numpy.array([float(feature) for feature in feats])

def test3():
    data = sc.textFile('/home/helxsz/Dropbox/exercise/spark/data_banknote_authentication.txt')
    parsed = data.map(mapper)
    logistic = LogisticRegressionWithSGD()
    logistic.optimizer.setNumIterations(200).setMiniBatchFraction(0.1)
    model = logistic.run(parsed)
    labelsAndPreds = parsed.map(lambda points: (int(points[0]), model.predict( points[1:len(points)]) ))
    trainErr = labelAndPreds.filter(lambda (v,p): v != p).count() / float(parsed.count())
    print 'training error = ' + str(trainErr)

但是当我使用逻辑回归和GD如下所示

^{pr2}$

它给出了一个错误AttributeError:'LogisticRegressionWithSGD'对象没有属性“optimizer”

这是LogisticRegressionWithSGDGradientDescent的API文档


Tags: mapdatalendeflinefloatparsedlabel