Введение в науку о данных с Python

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

Вот некоторые из областей, в которых важно понимание методов анализа данных:

  • Лекарственное средство
  • Бизнес
  • Правительство
  • Гуманитарная помощь
  • Многие отрасли науки
  • Искусственный интеллект/машинное обучение

Язык программирования Python — идеальный инструмент для анализа и работы с данными. Доступно множество мощных библиотек с открытым исходным кодом, которые позволяют нам сосредоточиться на текущей задаче, а не увязнуть в деталях реализации. Две самые мощные и популярные библиотеки для работы с данными в Python: панды а также matplotlib.

Модуль Python Панды

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

Панды используют Series а также DataFrame структуры данных для представления данных способом, подходящим для анализа. Также есть методы для удобной фильтрации данных. Одной из мощных функций является возможность считывать данные из различных форматов, в том числе непосредственно из онлайн-источника.

Матплотлиб

Matplotlib — замечательная библиотека Python для создания подробных и привлекательных визуализаций на Python. Вскоре вы обнаружите, как легко создавать графики ваших данных с множеством параметров настройки.


Давайте начнем!

Если у вас их еще нет, вам нужно будет сначала установить пакеты. То, как вы это сделаете, будет зависеть от вашей ситуации. Одним из распространенных способов является использование pip из терминала.

  • pip install pandas
  • pip install matplotlib

Установка пакетов — важный навык для всех, кто хочет использовать не только базовые функции Python. Доступны тысячи потрясающих пакетов. Вы можете подробнее о том, как установить пакеты Python, читайте здесь.

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

Набор данных показан ниже для справки.

Study Treated Placebo
Blashki.et.al. 1.75 1.02
Byerly.et.al. 2.3 1.37
Claghorn.et.al. 1.91 1.49
Davidson&Turnbull 4.77 2.28
Elkin.et.al. 2.35 2.01
Goldberg.et.al. 0.44 0.44
Joffe.et.al. 1.43 0.61
Kahn.et.al. 2.25 1.48
Kiev&Okerson 0.44 0.42
Lydiard 2.59 1.93
Ravaris.et.al. 1.42 0.91
Rickels.et.al. 1.86 1.45
Rickels&Case 1.71 1.17
Robinson.et.al. 1.13 0.76
Schweizer.et.al. 3.13 2.13
Stark&Hardison 1.4 1.03
van.der.Velde 0.66 0.1
White.et.al. 1.5 1.14
Zung 0.88 0.95

Если вы посмотрите на веб-сайт, откуда берутся эти данные, вы увидите следующую историю (впрочем, стоит учитывать, что одна из основных целей анализа данных — найти историю, стоящую за данными).

История: Исследование сравнило эффективность нескольких антидепрессантов, изучив эксперименты, в которых они прошли требования FDA. В каждом из этих экспериментов активное лекарство сравнивали с плацебо, инертной таблеткой, которую давали некоторым испытуемым. В каждом эксперименте у некоторых пациентов, получавших плацебо, наблюдалось улучшение состояния, явление, называемое эффектом плацебо. Уровни депрессии пациентов оценивали по Шкале оценки депрессии Гамильтона, где большие числа указывают на большее улучшение. (Шкала Гамильтона является общепринятым стандартом, который использовался в каждом независимом исследовании.) Хорошо известно, что плацебо может оказывать сильное терапевтическое воздействие на депрессию, но отделить эффект плацебо от медицинского воздействия может быть сложно.

Одна вещь, о которой всегда следует помнить при работе с данными, — это именно то, что представляют данные!

В этом примере не так много информации о том, что именно представляет каждая точка данных. Я собираюсь предположить, что каждое значение, данное по Шкале оценки депрессии Гамильтона для каждого исследования, представляет собой среднее (не забывайте, что этот термин неоднозначен — давайте предположим среднее) значение для каждой выборки в исследовании.

Вот некоторый код Python, который мы можем использовать, чтобы получить описательную статистику для набора данных. Обратите внимание, как легко читать данные, используя pandas, даже с удаленного URL. Если вы хотите скачать данные и загрузить их из локального файла, используйте вместо этого строку с комментариями.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv(" sep="\t")
# df = pd.read_csv("antidepressants.txt", sep="\t")
print(df.describe())

Вывод из приведенного выше кода

Treated Placebo
count 19.000000 19.000000
mean 1.785263 1.194211
std 1.022428 0.606615
min 0.440000 0.100000
25% 1.265000 0.835000
50% 1.710000 1.140000
75% 2.275000 1.485000
max 4.770000 2.280000

В зависимости от вашего уровня опыта в анализе данных эти значения будут иметь для вас более или менее смысл. Они представляют собой базовое описание набора данных с точки зрения его размера, среднего значения и распределения данных. % цифры для квартили которые разбивают данные на четыре раздела, чтобы помочь нам понять, насколько «разбросаны» данные.

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

Объекты Python Pandas DataFrame

Что касается приведенного выше кода Python, главное отметить, что мы импортируем нужные нам библиотеки, а затем создаем кадр данных объект (df в нашем коде), который содержит наши данные и имеет множество полезных свойств и методов, которые мы можем использовать для его изучения.

Например, если вы добавите print(df.head) к существующему коду вы получите следующий вывод:

Study Treated Placebo
0 Blashki.et.al. 1.75 1.02
1 Byerly.et.al. 2.30 1.37
2 Claghorn.et.al. 1.91 1.49
3 Davidson&Turnbull 4.77 2.28
4 Elkin.et.al. 2.35 2.01

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

Изучение набора данных с использованием Python и Matplotlib — Scatterplot

Чтобы получить более четкое представление (буквально) о данных, мы можем использовать Python matplotlib библиотека для создания множества различных визуальных представлений. Добавьте приведенный ниже код к существующему коду сверху, чтобы создать простой график данных, используя + а также x чтобы отметить значения на оси Y.

treated = df.Treated
placebo = df.Placebo
study = df.Study
plt.suptitle("Antidepressant Trials - Hamilton Depression Rating Scale")
plt.title("Source: DASL. 19 Samples")
plt.plot(study, treated, "+", color="blue")
plt.plot(placebo, "x", color="red" )
plt.xticks(rotation=60, ha="right")
plt.show()

Синтаксис очень интуитивно понятен. Главное, что следует отметить, это то, что мы извлекли отдельные столбцы из фрейма данных и использовали их в качестве аргументов в plt.plot(). Есть также несколько деталей, относящихся к параметрам отображения, но они в основном говорят сами за себя.

Диаграмма рассеяния грамотности данных Python

Изучение набора данных с использованием Python и Matplotlib — графики Box and Whiskers

Диаграмма рассеяния — отличный способ получить визуальный обзор набора данных, но он затрудняет чтение точных значений. Другим распространенным инструментом для визуального представления данных является коробка и усы сюжет. Он содержит более или менее ту же информацию, которую мы собрали выше, используя df.describe()но в легко усваиваемом визуальном формате.

Добавьте следующий код к тому, что у вас уже есть:

labels = ["Treated", "Placebo"]
data = [treated, placebo]
plt.boxplot(data, vert=False, patch_artist=True, labels=labels, showfliers=False)
plt.suptitle("Antidepressant Trials - Hamilton Depression Rating Scale")
plt.title("Source: DASL. 19 Samples")
plt.show()

и вы получите эту цифру.

Блок-схема аналитики данных Python

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

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

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

Удачных вычислений!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *