Перед решением любой задачи науки о данных, такой как исследовательский анализ или построение модели, нужно ответить на следующие вопросы:
Что вы хотите узнать или обнаружить с помощью данных?
Есть ли у вас подходящие для анализа данные?
Данные — это ключевая часть любой задачи науки о данных и машинного обучения. Они бывают разных типов: числовые, категориальные и текстовые, а также изображения, звуковые и видеоданные. Возможности прогнозирования модели зависят от качества данных, используемых при ее построении.
Преимущества высококачественных данных
а) С меньшей вероятностью вызывают ошибки.
б) Могут привести к низким ошибкам обобщения. Это означает, что модель с легкостью обнаруживает реальные эффекты и может применяться к невидимым данным для предсказания.
в) Предоставляют надежные результаты из-за небольшой неопределенности. То есть они обнаруживают реальные эффекты и обладают меньшим количеством случайного шума.
г) Высококачественные данные, содержащие большое количество наблюдений, уменьшают ошибку дисперсии (она уменьшается с размером выборки, согласно центральным предельным теоремам).
В этой статье мы обсудим различные источники данных, которые можно использовать для анализа и построения моделей.
В первом разделе мы узнаем, какие данные подходят для практики и совершенствования навыков работы с данными, а во втором — что нужно делать при отсутствии доступных данных.
I. Построение модели машинного обучения при наличии данных
Если вас интересуют открытые и бесплатные наборы данных, которые можно использовать для отработки навыков в науке о данных и машинном обучении, то на помощь придут следующие ресурсы:
а) Пакет R Datasets
Пакет R Datasets содержит множество наборов данных. Для получения полного списка используйте library(help = "datasets")
Например, women — это набор данных, принадлежащий к пакету Datasets, который содержит рост и вес женщин. Получить доступ к нему можно следующим образом:
data("women")
head(women)
б) Пакет R Dslabs
Пакет R dslabs содержит наборы данных и функции, которые можно использовать для анализа, выполнения домашних заданий и проектов на курсах и семинарах по науке о данных. 26 наборов данных доступны для тематических исследований в области визуализации данных, статистического вывода, моделирования, линейной регрессии, обработки данных и машинного обучения.
Пакет dslabs можно установить следующим образом:
install.packages("dslabs")
library("dslabs")
data(package='dslabs')
в) Наборы данных Python Sklearn
Python sklearn предоставляет несколько стандартных наборов данных, таких как iris и digits для классификации, а также набор данных о ценах на жилье в Бостоне для регрессии.
Доступ к наборам Sklearn можно получить следующим образом:
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()
breast_cancer_data = datasets.load_breast_cancer()
г) Репозиторий машинного обучения UCI
В настоящее время UCI поддерживает 487 наборов данных в качестве сервиса для сообщества машинного обучения, которые можно использовать для анализа, выполнения домашних заданий и проектов на курсах и семинарах по науке о данных.
д) Наборы данных Kaggle
Kaggle также содержит множество наборов данных для выполнения сложных проектов науки о данных и машинного обучения.
е) Из интернета
При извлечении данных с веб-сайтов приходится выполнять большое количество работы по очистке, организации и изменению данных. Однако некоторые веб-сайты содержат данные в чистом и структурированном формате. Например, набор College Towns из Википедии. Извлеченные данные можно обработать и сохранить в виде текстового файла для дальнейшего анализа: руководство по обработке данных: набор данных College Towns.
В программах на Python и R есть ресурсы для импорта данных из файла CSV, если известен его URL.
(1) Импорт файла CSV с использованием Python и URL-адреса файла:
import pandas as pd
df = pd.read_csv('https://archive.ics.uci.edu/ml/machinelearning-
databases/breast-cancer-wisconsin/wdbc.data',
header=None)
(2) Импорт файла CSV с помощью R и URL-адреса файла:
- функция download.file()
Эта функция загружает файл CSV и сохраняет его как новый файл:
download.file(“https://raw.githubusercontent.com/bot13956/datasets/master/introduction_to_physics_grades.csv", “grades.csv”)
- функция read.csv()
Эта функция загружает файл и сохраняет его как фрейм данных:
data<-read.csv(“https://raw.githubusercontent.com/bot13956/datasets/master/introduction_to_physics_grades.csv")
(3) Извлечение данных из PDF-файлов:
Интернет-данные также можно извлечь из файлов PDF.
II. Построение модели машинного обучения при отсутствии доступных данных
Иногда необходимые данные отсутствуют, а получение полного набора либо невозможно, либо требует слишком много времени. В таком случае нужно разработать способ сбора лучшего набора данных, который будет отвечать на необходимые вопросы быстрым и эффективным способом.
Рассмотрим несколько способов:
а) Покупка необработанных данных у организаций или компаний
Дорогостоящий метод, однако он поможет сэкономить время, поскольку иногда компании или организации предоставляют данные в структурированном виде, готовые для анализа без очистки и изменения.
б) Данные из исследований
Этот метод требует затрат на разработку и реализацию исследования. Кроме того, собранные данные могут содержать множество пропущенных данных или данных в неправильном формате. Например, участник может ввести свой возраст как «двадцать восемь» вместо 28, поэтому для предварительной обработки, организации, очистки и изменения данных потребуется много работы.
в) Данные из экспериментов
В этом случае необходимо выбрать зависимые переменные или прогнозирующие параметры. Например, просмотрев цены на жилье в данном районе, можно выполнить прогноз цен на жилье на основе прогнозирующих параметров или таких характеристик, как количество спален, площадь в квадратных метрах, почтовый индекс, школы поблизости, год постройки и др.
г) Данные из датчиков
Отрасли и компании могут создавать датчики для сбора данных. Например, датчик для сбора данных о температуре, давлении, влажности и т. д.
е) Моделирование данных
Этот метод чаще всего используется для случайных процессов. Например, можно использовать метод Монте-Карло для моделирования данных, которые следуют заданному распределению вероятности, например, Пуассона или нормальному распределению. Такой метод для создания необработанных данных абсолютно бесплатный. Здесь для построения моделей можно использовать вероятностные методы. Известные распределения вероятностей, используемые для моделирования реальных явлений, включают непрерывное равномерное распределение, Гауссово или нормальное распределение, распределение Бернулли, распределение Пуассона или экспоненциальное распределение.
Заключение
Мы обсудили несколько источников данных, которые можно использовать для проектов по науке о данных. Перед началом работы убедитесь, что данные, используемые для построения модели, находятся в свободном доступе и имеют высокое качество. Если необходимые данные недоступны, тогда следует разработать план для их сбора. В этом случае убедитесь, что собранных данных достаточно для ответа на заданные вопросы.
Читайте также:
- Значение Data Science в современном мире
- Шесть рекомендаций для начинающих специалистов по Data Science
- Как составить Data Science портфолио? Часть 1
Перевод статьи Benjamin Obi Tayo Ph.D.: Building a Machine Learning Model When Data Isn’t Available