开始使用免费开始使用

处理噪声标签

一位网络安全分析师告知您:训练数据中前 100 台源计算机的许多标签可能因为数据库错误而不正确。她希望您仍然能使用这些数据,因为大部分标签依然正确,但请将这 100 个标签视为"有噪声"。幸运的是,您知道可以用加权学习来处理。工作区中已提供受污染的数据:X_trainX_testy_train_noisyy_test。您想看看是否能通过加权学习提升 GaussianNB() 分类器的性能。大多数常用分类器的 .fit() 方法都支持可选参数 sample_weightaccuracy_score() 函数已预加载。您可以参考下方图片获取指引。

本练习是课程的一部分

用 Python 设计机器学习工作流

查看课程

练习说明

  • 使用受污染的标签,将一个 GaussianNB() 实例拟合到训练数据上。
  • 使用 accuracy_score() 报告其在测试数据上的准确率。
  • 创建权重:对可信的真实标签赋予噪声标签 2 倍的权重。请记住,权重是针对训练数据的。
  • 使用上述权重重新拟合分类器,并报告其准确率。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Fit a Gaussian Naive Bayes classifier to the training data
clf = ____.____(____, y_train_noisy)

# Report its accuracy on the test data
print(accuracy_score(y_test, ____.____(X_test)))

# Assign half the weight to the first 100 noisy examples
weights = [____]*100 + [1.0]*(len(____)-100)

# Refit using weights and report accuracy. Has it improved?
clf_weights = GaussianNB().fit(X_train, y_train_noisy, ____=____)
print(accuracy_score(y_test, ____))
编辑并运行代码