Рубрики
Без рубрики

Введение в науку о данных с помощью Python

Изучайте науку о данных с помощью Python. Изучите библиотеки Pandas и Matplotlib для анализа и построения графиков данных.

Автор оригинала: Robin Andrews.

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

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

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

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

Модуль Python Pandas

Pandas – это мощный и простой в использовании инструмент анализа и обработки данных с открытым исходным кодом, построенный на основе языка программирования Python. Название происходит от термина “панельный анализ данных”, статистического метода, используемого в таких областях, как социальные науки, эпидемиология и эконометрика.

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

Matplotlib

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

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

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

  • pip установить панд
  • pip установить 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("https://dasl.datadescription.com/download/data/3054", 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

С точки зрения кода Python выше, главное, что следует отметить, это то, что мы импортируем необходимые нам библиотеки, а затем создаем DataFrame объект ( 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 и 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()

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

Boxplot анализа данных Python

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

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

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

Счастливых вычислений!