Представляем простой и интуитивно понятный Python API для репозитория машинного обучения UCI

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

Введение

Репозиторий набора данных машинного обучения UCI является чем-то вроде легенды в области педагогики машинного обучения. Это ‘идти в магазин’ как для начинающих, так и для продвинутых учащихся. Это набор баз данных, теорий предметной области и генераторов данных, которые используются сообществом машинного обучения для эмпирического анализа алгоритмов машинного обучения. Архив был создан как ftp-архив в 1987 году Дэвидом Ага и его коллегами-аспирантами Калифорнийского университета в Ирвине. С тех пор он широко используется студентами, преподавателями и исследователями во всем мире в качестве основного источника наборов данных для машинного обучения. Как показатель влияния архива, он был процитирован более 1000 раз, что сделало его одним из 100 самых цитируемых «документов» по ​​информатике.

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

Я рад представить простой и интуитивно понятный API для портала UCI ML, где пользователи могут легко найти описание набора данных, найти конкретный набор данных, который им интересен, и даже загрузить наборы данных, классифицированные по размеру или задаче машинного обучения.

Скачать/клонировать отсюда

Это кодовая база Python 3.6 с открытым исходным кодом, лицензированная MIT, которая предлагает функции и методы, позволяющие пользователю работать с наборами данных UCI ML в интерактивном режиме. Загрузите/клонируйте/форкните кодовую базу с моего Страница на гитхабе здесь .

Требуемые пакеты/зависимости

Для запуска этого кода требуется всего три широко используемых пакета Python. Для упрощения установки этих вспомогательных пакетов файлы setup.bash и setup.bat включены в мой репозиторий. Просто запустите их в своей оболочке Linux/Windows, и все готово!

Как запустить?

Убедитесь, что вы подключены к Интернету 🙂 Затем просто загрузите/клонируйте репозиторий Gitgub, убедитесь, что установлены поддерживающие пакеты.

git clone {your_local_directory}

Затем перейдите к your_local_directory где вы клонировали Git и выполните следующую команду на своем терминале.

python Main.py

Откроется меню, позволяющее выполнять различные задачи. Вот скриншот меню,

Возможности и функции, поддерживаемые в настоящее время

В настоящее время реализованы следующие функции…

  • Создание локальной базы данных с именами, описаниями и URL-адресами наборов данных путем обхода всего портала.
  • Создание локальной базы данных имени, размера, задачи машинного обучения наборов данных путем обхода всего портала
  • Поиск и загрузка определенного набора данных
  • Скачать первые несколько наборов данных
  • Распечатать имена всех наборов данных
  • Распечатать краткие описания всех наборов данных
  • Найдите однострочное описание и ссылку на веб-страницу (для получения дополнительной информации) набора данных.
  • Скачивайте наборы данных в зависимости от их размера
  • Скачивайте наборы данных на основе связанной с ними задачи машинного обучения.

Пример (поиск и загрузка определенного набора данных)

Например, если вы хотите загрузить знаменитый набор данных Iris, просто выберите в меню вариант 3, введите имя сохраненной локальной базы данных (для ускорения поиска) и вуаля! Набор данных Iris будет загружен и сохранен в папке под названием «Iris» в вашем каталоге!

Пример (поиск наборов данных по определенному ключевому слову)

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

Если вы хотите обойти простой API и поиграть с низкоуровневыми функциями

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

from UCI_ML_Functions import *import pandas as pd

read_dataset_table(): Считывает таблицу наборов данных с URL-адреса: «и обрабатывает ее дальше, чтобы очистить и классифицировать.

clean_dataset_table(): принимает необработанную таблицу набора данных (объект DataFrame) и возвращает очищенную версию, удаляя записи с неизвестным количеством выборок и атрибутов. Также рационализируется столбец категории «Задача по умолчанию», указывающий основную задачу машинного обучения, связанную с наборами данных.

build_local_table(filename=None,msg_flag=True): считывает через портал машинного обучения UCI и создает локальную таблицу с такой информацией, как имя, размер, задача машинного обучения, тип данных.

  • filename: Необязательное имя файла, которое может выбрать пользователь. Если не выбрано, программа выберет имя по умолчанию («UCI table.csv»).
  • msg_flag: Управляет многословием.

build_dataset_list(): просматривает страницу наборов данных UCI ML и создает список всех наборов данных.

build_dataset_dictionary(): просматривает страницу наборов данных UCI ML и создает словарь всех наборов данных с именами и описанием. Также хранит уникальный идентификатор, соответствующий набору данных. Эта строка идентификатора необходима функции загрузчика для загрузки файла данных. Общее название не подойдет.

build_full_dataframe(): создает DataFrame со всей информацией вместе, включая URL-ссылку для загрузки данных.

build_local_database(filename=None,msg_flag=True): Считывает портал UCI ML и создает локальную базу данных с такой информацией, как: имя, реферат, URL-адрес страницы данных.

  • filename: Необязательное имя файла, которое может выбрать пользователь. Если он не выбран, программа выберет имя по умолчанию («UCI database.csv»).
  • msg_flag: Управляет многословием.

return_abstract(name,local_database=None,msg_flag=False): возвращает однострочное описание (и ссылку на веб-страницу для получения дополнительной информации) определенного набора данных путем поиска заданного name.

  • local_database: имя базы данных (файл CSV), хранящейся локально, т. е. в том же каталоге, который содержит информацию обо всех наборах данных в репозитории UCI ML.
  • msg_flag: Управляет многословием.

describe_all_dataset(msg_flag=False): вызывает build_dataset_dictionary функцию и выводит описание всех наборов данных из нее.

print_all_datasets_names(msg_flag=False): вызывает build_dataset_dictionary функцию и печатает имена всех наборов данных из нее.

extract_url_dataset(dataset,msg_flag=False): Учитывая идентификатор набора данных, эта функция извлекает URL-адрес страницы, на которой находятся фактические необработанные данные.

download_dataset_url(url,directory,msg_flag=False,download_flag=True): Загрузите все файлы по ссылкам в указанном URL-адресе.

  • msg_flag: Управляет многословием.
  • download_flag: по умолчанию — Истина. Если установлено значение False, только создаются каталоги, но не инициируется загрузка (в целях тестирования).

download_datasets(num=10,local_database=None,msg_flag=True,download_flag=True): загружает наборы данных и помещает их в локальный каталог, названный в честь набора данных. По умолчанию загружаются только первые 10 наборов данных. Пользователь может выбрать количество загружаемых наборов данных.

  • msg_flag: Управляет многословием.
  • download_flag: по умолчанию — Истина. Если установлено значение False, только создаются каталоги, но не инициируется загрузка (в целях тестирования).

download_dataset_name(name,local_database=None,msg_flag=True,download_flag=True): загружает определенный набор данных путем поиска по заданному имени.

  • local_database: имя базы данных (файл CSV), хранящейся локально, т. е. в том же каталоге, который содержит информацию обо всех наборах данных в репозитории UCI ML.
  • msg_flag: Управляет многословием.
  • download_flag: по умолчанию — Истина. Если установлено значение False, только создаются каталоги, но не инициируется загрузка (в целях тестирования).

download_datasets_size(size="Small",local_database=None,local_table=None,msg_flag=False,download_flag=True): загружает все наборы данных, соответствующие критерию «размера».

  • size: размер набора данных, который пользователь хочет загрузить. Может быть любым из следующих: «Маленький», «Средний», «Большой», «Очень большой».
  • local_database: имя базы данных (файл CSV), хранящейся локально, т. е. в том же каталоге, который содержит информацию об имени и URL обо всех наборах данных в репозитории UCI ML.
  • local_table: имя базы данных (CSV-файл), хранящейся локально, т. е. в том же каталоге, который содержит информацию о функциях обо всех наборах данных в репозитории UCI ML, т. е. количество образцов, тип задачи машинного обучения, которая будет выполняться с набором данных.
  • msg_flag: Управляет многословием.
  • download_flag: по умолчанию — Истина. Если установлено значение False, только создаются каталоги, но не инициируется загрузка (в целях тестирования).

download_datasets_task(task='Classification',local_database=None,local_table=None,msg_flag=False,download_flag=True): загружает все наборы данных, которые соответствуют критериям задачи машинного обучения, введенным пользователем.

  • task: задача машинного обучения, для которой пользователь хочет загрузить наборы данных. Может быть любым из следующего:
  • «Классификация», «Системы рекомендаций», «Регрессия», «Другое/неизвестно», «Кластеризация», «Выявление причин».
  • local_database: имя базы данных (файл CSV), хранящейся локально, т. е. в том же каталоге, который содержит информацию об имени и URL обо всех наборах данных в репозитории UCI ML.
  • local_table: имя базы данных (CSV-файл), хранящейся локально, т. е. в том же каталоге, который содержит информацию о функциях обо всех наборах данных в репозитории UCI ML, т. е. количество образцов, тип задачи машинного обучения, которая будет выполняться с набором данных.
  • msg_flag: Управляет многословием.
  • download_flag: по умолчанию — Истина. Если установлено значение False, только создаются каталоги, но не инициируется загрузка (в целях тестирования).

Если у вас есть какие-либо вопросы или идеи, чтобы поделиться, пожалуйста, свяжитесь с автором по адресу тиртхаджйоти[AT]gmail.com. Также вы можете ознакомиться с авторскими Репозитории GitHub другие забавные фрагменты кода на Python, R или MATLAB, а также ресурсы по машинному обучению. Если вы, как и я, увлечены машинным обучением/наукой о данных, пожалуйста, не стесняйтесь добавь меня в LinkedIn или же Подпишись на меня в Твиттере.

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

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

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