小编And*_*ado的帖子

检查用户是否使用 django TokenAuthentication 进行身份验证

我正在尝试使用 DRF 开发 REST API,该 API 使用TokenAuthentication. 这将用于 android 应用程序。

我能够对用户进行身份验证并检索它的令牌。我现在遇到的问题是以下观点:

@csrf_exempt
def foo(request):
    if request.method == 'GET':
        if request.user.is_authenticated():
            ...
            do stuff
            ...
            return HttpResponse(data, "application/json")
        else:
            return HttpResponse(status=401)
Run Code Online (Sandbox Code Playgroud)

基本上,用户应该经过身份验证才能接收数据,否则,他将收到 401 响应。

我正在使用标题中的以下参数向正确的 URL 发出 GET 请求:

content-type : application/json
authorization : Token <user token>
Run Code Online (Sandbox Code Playgroud)

这基本上就是我为其他视图集(这不是一个视图集)所做的工作 - 并且它有效。

在这种情况下,它总是发送带有 401 代码的 HTTP 响应(用户未通过身份验证)。

我不知道问题是否出在我传递的 Header 值上,或者这是否不是检查用户是否通过身份验证的正确方法。

编辑:如果我这样做:“打印 request.user”我得到 AnonymousUser

谢谢!

解决了

正如“ABDUL NIYAS P M”所建议的,我使用了 APIView

基本上,我只是在视图中添加了@api_view(['GET'])装饰器。

@csrf_exempt
@api_view(['GET'])
@permission_classes((IsAuthenticated, …
Run Code Online (Sandbox Code Playgroud)

python django django-views django-rest-framework

5
推荐指数
1
解决办法
2765
查看次数

使用 Pyspark 的交叉验证指标

当我们进行 k 折交叉验证时,我们正在测试模型在预测它从未见过的数据时的表现。

如果将我的数据集分成 90% 的训练和 10% 的测试并分析模型性能,则不能保证我的测试集不只包含 10% 的“最容易”或“最难”的预测点。

通过进行 10 折交叉验证,我可以确保每个点至少会用于训练一次。由于(在这种情况下)模型将被测试 10 次,我们可以对这些测试指标进行分析,这将使我们更好地了解模型在分类新数据方面的表现。

当目的应该是模型检查时,Spark 文档将交叉验证称为优化算法超参数的一种方式。

通过做这个:

lr = LogisticRegression(maxIter=10, tol=1E-4)
ovr = OneVsRest(classifier=lr)
pipeline = Pipeline(stages=[... , ovr])

crossval = CrossValidator(estimator=pipeline,
                          estimatorParamMaps=paramGrid,
                          evaluator=MulticlassClassificationEvaluator(),
                          numFolds=10)

# Run cross-validation, and choose the best set of parameters.
cvModel = crossval.fit(df)
Run Code Online (Sandbox Code Playgroud)

我能够获得(在我的理解中)具有paramGrid 中定义的最佳参数集的模型。我理解这种超参数调整的价值,但我想要的是分析模型性能,而不仅仅是获得最佳模型。

问题是(对于这种情况下的 10 倍交叉验证):

是否可以使用 CrossValidator 为 10 个测试中的每一个(或每个指标的这 10 个测试的平均值)提取指标(f1、精度、召回率等)?,. 是否可以使用 CrossValidator 进行模型检查而不是模型选择?

谢谢!


更新


正如user10465355在评论中所述,可以在此处找到类似的问题。第一个建议是在拟合之前将 collectSubModels 设置为 true …

cross-validation apache-spark pyspark apache-spark-mllib

5
推荐指数
0
解决办法
3558
查看次数