Наборы данных для машинного обучения (ML) и экспериментов

Наборы данных для машинного обучения (ML) и экспериментов

Как специалист по Data Science, могу сказать, что данные являются основой любого проекта. В этой статье рассматриваются наиболее распространённые и популярные наборы данных. Также мы привели примеры кода для извлечения данных и загрузки в DataFrame. Давайте начинать!

Seaborn Datasets

Seaborn – популярная библиотека Python для визуализации данных, которая также включает в себя несколько встроенных наборов данных для экспериментов и обучения. Вот 10 наборов данных, доступных в Seaborn:

import seaborn as sns 
import pandas as pd

titanic_df = sns.load_dataset('titanic')
iris_df = sns.load_dataset('iris')
penguins_df = sns.load_dataset('penguins')

Другие известные наборы данных seaborn:

  • anscombe: Набор данных, содержащий четыре группы данных, которые обладают почти идентичными статистическими свойствами, но различаются по своему распределению.
  • attention: Набор данных, содержащий время реакции в миллисекундах испытуемых в эксперименте по когнитивной психологии.
  • brain_networks: набор данных, содержащий схемы подключения различных областей мозга.
  • diamonds: Набор данных, содержащий цены и характеристики примерно 54 000 бриллиантов круглой огранки.
  • exercise: набор данных, содержащий результаты тестов с физической нагрузкой для людей разного возраста.
  • fmri: набор данных, содержащий сигналы функциональной магнитно-резонансной томографии (ФМРТ) головного мозга.
  • gammas: набор данных, содержащий имитированные измерения спектров гамма-излучения.
  • iris: Набор данных, содержащий измерения длины чашелистика, ширины чашелистика, длины лепестков и ширины лепестков 150 цветков ириса трёх разных видов.
  • planets: набор данных, содержащий информацию о планетах, открытых за пределами нашей Солнечной системы.
  • tips: набор данных, содержащий информацию об общей сумме счёта, размере чаевых и других атрибутах клиентов ресторана.

Kaggle datasets

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

  • Titanic: набор данных, содержащий информацию о пассажирах на борту “Титаника”, в том числе о том, выжили они или нет.
  • Housing Prices: набор данных, содержащий информацию о ценах продажи домов в Эймсе, штат Айова.
  • Iris: Набор данных, содержащий измерения длины чашелистика, ширины чашелистика, длины лепестков и ширины лепестков 150 цветков ириса трёх разных видов.
  • Credit Card Fraud Detection: набор данных, содержащий транзакции по кредитным картам, помеченные как мошеннические или не мошеннические.
  • Global Terrorism Database: набор данных, содержащий информацию о террористических атаках по всему миру с 1970 по 2017 год.
  • Airbnb: набор данных, содержащий информацию о списках отелей Airbnb и бронированиях в различных городах по всему миру.
  • Wine Reviews: набор данных, содержащий информацию о винах, включая страну их происхождения, сорт и оценку рецензента.
  • New York City Taxi Trip Duration: набор данных, содержащий информацию о поездках на такси в Нью-Йорке, включая места посадки и высадки пассажиров, а также продолжительность поездки.
  • COVID-19: набор данных, содержащий информацию о распространении и последствиях пандемии COVID-19, включая случаи заболевания, смертность и показатели вакцинации.
  • Amazon Top 50 Bestselling Books 2009–2019: набор данных, содержащий информацию о 50 самых продаваемых книгах на Amazon с 2009 по 2019 год.

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

import pandas as pd
# Load the Housing Prices dataset
housing_df = pd.read_csv('https://raw.githubusercontent.com/ageron/handson-ml2/master/datasets/housing/housing.csv')
# Load the Credit Card Protection dataset
cc_df = pd.read_csv('https://storage.googleapis.com/download.tensorflow.org/data/creditcard.csv')
# Load the Amazon Books dataset
books_df = pd.read_csv('https://raw.githubusercontent.com/zygmuntz/amzn/master/converted/data/merged_books.csv')
# Load the COVID-19 dataset
covid_df = pd.read_csv('https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/owid-covid-data.csv')
# Load the Airbnb dataset
airbnb_df = pd.read_csv('https://raw.githubusercontent.com/labdsv/datasets/master/data/airbnb/listings_summary.csv')
# Load the Wine Reviews dataset
wine_df = pd.read_csv('https://raw.githubusercontent.com/zackthoutt/wine-deep-learning/master/data/winemag-data-130k-v2.csv')
# Print the first five rows of each dataset
print("Housing Prices dataset:")
print(housing_df.head())
print("\nCredit Card Protection dataset:")
print(cc_df.head())
print("\nAmazon Books dataset:")
print(books_df.head())
print("\nCOVID-19 dataset:")
print(covid_df.head())
print("\nAirbnb dataset:")
print(airbnb_df.head())
print("\nWine Reviews dataset:")
print(wine_df.head())

IMdb

IMDb не предоставляет общедоступный набор данных для загрузки. Однако вы можете использовать методы веб-очистки для извлечения данных из IMDb, используя библиотеки Python, такие как BeautifulSoup и Scrapy. Вот пример кода, который демонстрирует, как извлечь информацию о фильме из IMDb с помощью BeautifulSoup и загрузить её в фрейм данных Pandas:

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

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

import requests
from bs4 import BeautifulSoup
import pandas as pd

# Define the IMDb page URL to scrape
url = 'https://www.imdb.com/chart/top'

# Send a GET request to the URL
response = requests.get(url)

# Create a BeautifulSoup object from the HTML content
soup = BeautifulSoup(response.content, 'html.parser')

# Find all the movie titles and their ratings
movies = soup.find_all('td', {'class': 'titleColumn'})
ratings = soup.find_all('td', {'class': 'ratingColumn imdbRating'})

# Initialize lists to store the movie information
titles = []
years = []
ratings_list = []

# Loop through each movie and extract its title, year, and rating
for i in range(len(movies)):
    # Extract the title and year from the movie tag
    title_year = movies[i].find('a').text
    title = title_year.split('(')[0].strip()
    year = int(title_year.split('(')[1][:-1]) 

# Extract the rating from the rating tag
    rating = float(ratings[i].find('strong').text)

# Add the movie information to the lists
    titles.append(title)
    years.append(year)
    ratings_list.append(rating)

# Create a Pandas DataFrame from the movie information
    movies_df = pd.DataFrame({'Title': titles, 'Year': years, 'Rating': ratings_list})# Print the first five rows of the DataFrame
    print(movies_df.head())

Million Song Dataset

import h5py

# Open the HDF5 file for a specific song
with h5py.File('/path/to/hdf5/file', 'r') as f:
    # Extract the song metadata
    artist_name = f['metadata']['songs'][0]['artist_name']
    title = f['metadata']['songs'][0]['title']
    year = f['metadata']['songs'][0]['year']

# Extract the song audio features
    danceability = f['analysis']['songs'][0]['danceability']
    energy = f['analysis']['songs'][0]['energy']
    tempo = f['analysis']['songs'][0]['tempo']
    loudness = f['analysis']['songs'][0]['loudness'] 

# Print the song metadata and audio features
print('Artist: ' + artist_name)
print('Title: ' + title)
print('Year: ' + str(year))
print('Danceability: ' + str(danceability))
print('Energy: ' + str(energy))
print('Tempo: ' + str(tempo))
print('Loudness: ' + str(loudness))

Open Images Dataset

Набор данных Open Images представляет собой большую коллекцию аннотированных изображений, которые могут быть использованы для различных задач машинного обучения и компьютерного зрения. Он доступен на веб-сайте Open Images в нескольких различных форматах, включая набор CSV-файлов, которые содержат ссылки на файлы изображений. Вот пример кода на Python, который демонстрирует, как загрузить набор данных Open Images, используя библиотеки urllib и pandas:

import urllib.request
import pandas as pd

# Define the URL for the CSV file containing the image URLs
url = 'https://storage.googleapis.com/openimages/2018_04/class-descriptions-boxable.csv'# Download the CSV file and save it to disk
urllib.request.urlretrieve(url, 'class-descriptions-boxable.csv')

# Load the CSV file into a Pandas DataFrame
df = pd.read_csv('class-descriptions-boxable.csv', header=None, names=['LabelName', 'Label'])
# Define the URL for the CSV file containing the image URLs and labels
url = 'https://storage.googleapis.com/openimages/2018_04/train/train-annotations-bbox.csv'
# Download the CSV file and save it to disk
urllib.request.urlretrieve(url, 'train-annotations-bbox.csv')
# Load the CSV file into a Pandas DataFrame
df = pd.read_csv('train-annotations-bbox.csv')
# Define the URL for the image file and the output file name
image_url = 'https://c4.staticflickr.com/4/3741/11124746455_6e6a3b6f49_z.jpg'
output_file = 'example_image.jpg'
# Download the image file and save it to disk
urllib.request.urlretrieve(image_url, output_file)

Заключение

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

+1
0
+1
4
+1
1
+1
0
+1
0

Ответить

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