Упрощение статистики для науки о данных и машинного обучения с помощью Python: увлекательное руководство для любознательных

Считаете ли вы себя ошеломленным сложностями статистики как начинающего специалиста по данным?

Вы когда-нибудь мечтали о формуле, которая сделает обучение не только легким, но и приятным?

По правде говоря, эту формулу можно применить к любому понятию, с которым вы боретесь, а не только к статистике.

Если вы заинтригованы идеей окончательно понять эти неуловимые статистические термины, эта статья для вас.

Приготовьтесь, пока мы погружаемся в захватывающий мир статистики с Python, и эти концепции полезны для машинного обучения и науки о данных.

Учитесь, развлекаясь, не придерживайтесь длинных формул!

Вместо этого просто изучите понятия.

Потому что, если вы будете применять статистику, вы, возможно, сделаете это, используя более простые коды, будь то Python, R или Excel.

Допустим, вы являетесь писателем на Medium и хотите создать впечатляющий заголовок, и вам интересно, добавить ли ваш заголовок в биткойн или нет.

Получают ли статьи со словом «Биткойн» в заголовке разное количество лайков?

Теперь давайте узнаем, как это сделать.

Следующий код просматривает кучу статей. В некоторых статьях есть слово «Биткойн» в названии, а в некоторых нет. Код начинается с импорта необходимых библиотек с помощью:

from scipy.stats import norm
import numpy as np

Затем он разделяет статьи на две группы: те, которые содержат «Биткойн» в названии, и те, которые не содержат

df_python = df2[df2['title'].str.contains('Bitcoin')]
df_not_python = df2[~df2['title'].str.contains('Bitcoin')]

Он также подсчитывает количество статей в каждой группе:

n = df_python.shape[0]
m = df_not_python.shape[0]

Далее код вычисляет среднее количество лайков для каждой группы статей:

x = df_python["like"].values.mean()
y = df_not_python["like"].values.mean()

Эти средние значения затем распечатываются:

print("Average like per article which contains bitcoin word is : {}".format(x))
print("Average like per article which does not contains bitcoin word is : {}".format(y))

Код также вычисляет, насколько распределено количество лайков для каждой группы статей, что называется дисперсией:

x_var = df_python["like"].values.var()
y_var = df_not_python["like"].values.var()

И печатает эти отклонения:

print("Variance of like per article which contains bitcoin word is : {}".format(x_var))
print("Variance of like per article which does not contains bitcoin word is : {}".format(y_var))

Затем он использует то, что называется Z-тестом, чтобы увидеть, является ли разница в среднем количестве лайков между двумя группами просто случайностью или это реальная, значимая разница. Z-тест работает, наблюдая, на сколько стандартных отклонений наблюдаемая разница отличается от ожидаемой разницы (которая равна нулю, если реальной разницы нет):

z = (x - y)/np.sqrt(x_var/n + y_var/m)

Z-тест дает нам число, называемое p-значением:

p = 1 - norm.cdf(z)

Затем это p-значение распечатывается:

print("P-value is : {}".format(p))

Если p-значение мало (обычно меньше 0,05), мы можем сказать, что разница в среднем количестве лайков между двумя группами, вероятно, не случайность — это реальная разница. Если p-значение велико, мы не можем точно сказать, реальна ли разница или это просто случайность.

Если вы хотите прочитать эту статью и хотите увидеть данные, вот статья.

Что мы здесь делали?

Собственно, здесь мы и сделали Z-Test.

Вот формула z-теста.

z = (x - y) / np.sqrt(x_var/n + y_var/m)

Вот что означает каждая часть формулы:

  • x и y — среднее количество лайков для статей со словом «Биткойн» в заголовке и без него соответственно.
  • x_var и y_var — это дисперсии (показатель того, насколько разбросаны лайки) для каждой группы.
  • n и m — количество статей в каждой группе.
  • np.sqrt(x_var/n + y_var/m) — стандартная ошибка разницы между двумя средними значениями. Это мера неопределенности относительно разницы между двумя средними значениями.

Результат, z, является Z-показателем. Это мера того, на сколько стандартных отклонений наблюдаемая разница между двумя средними значениями (x - y) отличается от того, что мы ожидали бы, если бы не было реальной разницы (которая равна нулю).

Более высокий Z-показатель (в абсолютном значении) означает, что наблюдаемая разница с меньшей вероятностью будет случайной случайностью и с большей вероятностью будет реальной разницей.

Затем код вычисляет p-значение, связанное с этим Z-показателем, которое представляет собой вероятность наблюдения такого экстремального Z-показателя, если нулевая гипотеза (о том, что реальной разницы нет) верна:

p = 1 - norm.cdf(z)

Р-значение — это распространенный способ определить, является ли результат статистически значимым. Если p-значение мало (обычно меньше 0,05), мы отклоняем нулевую гипотезу и делаем вывод, что существует значительная разница в среднем количестве лайков между статьями со словом «Биткойн» в заголовке и без него.

Хотите увидеть больше?

Надеюсь, вы хотите увидеть больше.

Знаете ли вы, что вероятность того, что в группе из 23 человек дни рождения совпадают хотя бы у двух, составляет 50%?

Если вы хотите прочитать статью об этом, здесь.

Больше, больше, дай мне больше!

Хотите узнать больше о распределении Пуассона?

И у меня еще один вопрос, ты любишь смотреть футбол?

Если оба ответа да, то вот статья для вас.

В этой статье я объясняю, что такое распределение Пуассона, и рассчитываю вероятность совпадения между двумя командами с учетом исторических данных.

Что такое Bootstrapping?

Вы хотите изучить Bootstrapping, а также попытаться предсказать президентские выборы? Идите сюда".

Это просто метод повторной выборки для создания большого количества наборов данных. Так что, если у вас небольшой набор данных и у вас нет времени или денег на сбор данных, этот вариант для вас. Так что давай тут.

Заключительное примечание

На самом деле, я люблю писать о статистике, но я не вижу вашего внимания, которое мне нужно продолжать, поэтому, если вы хотите увидеть больше контента, как указано выше, дайте мне знать, и я продолжу создавать статьи, чтобы научить вас сложным статистическим понятиям. с популярными и легкими примерами, такими как выше.

Мои шпаргалки и исходные коды.

Если вы зашли так далеко, спасибо! Если вы еще не являетесь участником Medium и хотите расширить свои знания с помощью чтения, вот моя реферальная ссылка.

Я постоянно обновляю и добавляю новые шпаргалки и исходные коды для вашего удобства. Недавно я создал шпаргалку по ChatGPT и, честно говоря, не могу вспомнить дня, когда бы я не пользовался ChatGPT с момента его выпуска.

Не стесняйтесь выбрать один из шпаргалок или проектов, которые я отправлю вам, заполнив формы ниже:

Вот моя шпаргалка NumPy.

Вот исходный код проекта данных Как стать миллиардером.

Вот исходный код проекта данных Задача классификации с 6 различными алгоритмами с использованием Python.

Вот исходный код проекта данных Дерево решений в анализе энергоэффективности.

Вот исходный код проекта данных Анализ статей DataDrivenInvestor 2022.

«Машинное обучение — это последнее изобретение, которое когда-либо понадобится человечеству». Ник Бостром