Естественный уровень точности
В этом упражнении вы снова будете работать с данными о транзакциях по кредитным картам. Признаки и метки аналогичны данным из предыдущей главы, при этом данные сильно несбалансированы. Для работы вам уже предоставлены признаки 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
____(____)