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

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

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

Автор оригинала: Tirthajyoti Sarkar.

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

Вступление

UCI machine learning dataset repository является чем-то вроде легенды в области педагогики машинного обучения. Это “поход в магазин” как для начинающих, так и для продвинутых учеников. Это набор баз данных, теорий предметной области и генераторов данных, которые используются сообществом машинного обучения для эмпирического анализа алгоритмов машинного обучения. Архив был создан как ftp-архив в 1987 году Дэвидом Ага и его коллегами-аспирантами из Калифорнийского университета в Ирвине. С тех пор он широко используется студентами, преподавателями и исследователями во всем мире в качестве основного источника наборов данных машинного обучения. Как показатель влияния архива, он был процитирован более 1000 раз, что делает его одним из 100 самых цитируемых “документов” во всех компьютерных науках.

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

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

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

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

Необходимые пакеты/Зависимости

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

Как его запустить?

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

клон git https://github.com/tirthajyoti/UCI-ML-API.git {your_local_directory}

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

питон Main.py

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

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

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

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

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

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

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

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

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

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

from UCI_ML_Functions import *import pandas as pd

read_dataset_table() : Считывает таблицу наборов данных из URL-адреса: “https://archive.ics.uci.edu/ml/datasets.html” и обработайте его дальше, чтобы очистить и классифицировать.

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

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

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

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

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

build_full_data frame() : Создает фрейм данных со всей информацией вместе, включая 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) : Возвращает однострочное описание (и ссылку на веб-страницу для получения дополнительной информации) конкретного набора данных путем поиска по заданному имени .

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

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

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

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

download_dataset_url(url,каталог,msg_flag=False,download_flag=True) : Скачать все файлы по ссылкам в данном URL.

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

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

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

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

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

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

  • задача : Задача машинного обучения, для которой пользователь хочет загрузить наборы данных. Это может быть любое из следующих действий:
  • “Классификация”, “Рекомендательные системы”, “Регрессия”, “Другое/Неизвестное”, “Кластеризация”, “Причинное открытие”.
  • local_database : Имя базы данных (CSV-файл), хранящейся локально, т. е. в том же каталоге, который содержит информацию об имени и URL-адресе всех наборов данных в репо UCI ML.
  • local_table : Имя базы данных (CSV-файл), хранящейся локально, т. е. в том же каталоге, который содержит информацию о функциях всех наборов данных в репо UCI ML, т. е. количество выборок, тип задачи машинного обучения, выполняемой с набором данных.
  • msg_flag : Управляет многословием.
  • download_flag : Значение по умолчанию равно True. Если установлено значение False, то только создает каталоги, но не инициирует загрузку (для целей тестирования).

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