自然命中率
在本练习中,您将再次使用信用卡交易数据。特征和标签与上一章的数据相似,且数据高度不平衡。我们已经为您提供了可直接使用的特征 X 和标签 y,二者都是 NumPy 数组。
首先,您需要了解数据集中欺诈的发生比例,从而估算如果把所有样本都预测为非欺诈时的"自然准确率"。理解这一基线很重要,这样您才知道需要"超越"的"准确率"水平,以优于什么都不做的预测。在接下来的练习中,您将创建第一个用于欺诈检测的随机森林分类器。这将作为您随后要改进的"基线"模型。
本练习是课程的一部分
Python 中的欺诈检测
练习说明
- 通过获取标签
y的长度来统计观测总数。 - 使用对
y的列表推导统计非欺诈样本数量;请注意y是 NumPy 数组,因此此处不能使用.value_counts()。 - 通过用非欺诈样本数除以观测总数来计算自然准确率。
- 打印该百分比。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Count the total number of observations from the length of y
total_obs = ____
# Count the total number of non-fraudulent observations
non_fraud = [i for ____ ____ ____ if i == 0]
count_non_fraud = non_fraud.count(0)
# Calculate the percentage of non fraud observations in the dataset
percentage = (float(____)/float(____)) * 100
# Print the percentage: this is our "natural accuracy" by doing nothing
____(____)