8.2. Реальные наборы данных#
scikit-learn предоставляет инструменты для загрузки больших наборов данных, загружая их при необходимости.
Их можно загрузить с помощью следующих функций:
|
Загрузите набор данных лиц Olivetti от AT&T (классификация). |
|
Загрузка имён файлов и данных из набора данных 20 новостных групп (классификация). |
|
Загрузить и векторизовать набор данных 20 newsgroups (классификация). |
|
Загрузить набор данных Labeled Faces in the Wild (LFW) людей (классификация). |
|
Загрузить набор данных пар Labeled Faces in the Wild (LFW) (классификация). |
|
Загрузите набор данных covertype (классификация). |
|
Загрузите многометочный набор данных RCV1 (классификация). |
|
Загрузить набор данных kddcup99 (классификация). |
|
Загрузить набор данных о жилье в Калифорнии (регрессия). |
|
Загрузчик для набора данных о распределении видов от Phillips et al. |
8.2.1. Набор данных лиц Olivetti#
Этот набор данных содержит набор изображений лиц взяты между апрелем 1992 года и апрелем 1994 года в AT&T Laboratories Cambridge. Эти
sklearn.datasets.fetch_olivetti_faces Функция является функцией получения данных / кэширования, которая загружает архив данных с AT&T.
Как описано на оригинальном сайте:
Есть десять различных изображений каждого из 40 различных субъектов. Для некоторых субъектов изображения были сделаны в разное время, с разным освещением, выражением лица (открытые / закрытые глаза, улыбка / отсутствие улыбки) и деталями лица (очки / без очков). Все изображения были сделаны на темном однородном фоне, субъекты находились в вертикальном, фронтальном положении (с допуском на небольшое боковое движение).
Характеристики набора данных:
Классы |
40 |
Всего образцов |
400 |
Снижение размерности |
4096 |
Признаки |
действительное, между 0 и 1 |
Изображение квантуется до 256 уровней серого и сохраняется как беззнаковые 8-битные целые числа; загрузчик преобразует их в значения с плавающей точкой на интервале [0, 1], с которыми проще работать для многих алгоритмов.
«Цель» для этой базы данных — целое число от 0 до 39, указывающее личность изображённого человека; однако, имея всего 10 примеров на класс, этот относительно небольшой набор данных более интересен с точки зрения неконтролируемого или частично контролируемого обучения.
Исходный набор данных состоял из изображений 92 x 112, тогда как версия, доступная здесь, состоит из изображений 64x64.
При использовании этих изображений, пожалуйста, укажите авторство AT&T Laboratories Cambridge.
8.2.2. Текстовый набор данных 20 новостных групп#
Набор данных 20 newsgroups содержит около 18000 сообщений новостных групп по 20 темам, разделённым на два подмножества: одно для обучения (или разработки) и другое для тестирования (или оценки производительности). Разделение между обучающей и тестовой выборками основано на сообщениях, размещённых до и после определённой даты.
Этот модуль содержит два загрузчика. Первый,
sklearn.datasets.fetch_20newsgroups, возвращает список исходных текстов, которые могут быть переданы в средства извлечения текстовых признаков, такие как CountVectorizer
с пользовательскими параметрами для извлечения векторов признаков. Второй, sklearn.datasets.fetch_20newsgroups_vectorized,
returns ready-to-use features, i.e., it is not necessary to use a feature
extractor.
Характеристики набора данных:
Классы |
20 |
Всего образцов |
18846 |
Снижение размерности |
1 |
Признаки |
текст |
Использование#
The sklearn.datasets.fetch_20newsgroups функция является функцией получения/кэширования данных, которая загружает архив данных с оригинального сайт 20 newsgroups, извлекает содержимое архива в ~/scikit_learn_data/20news_home папку и вызывает
sklearn.datasets.load_files в папке обучающей или
тестовой выборки, или в обеих:
>>> from sklearn.datasets import fetch_20newsgroups
>>> newsgroups_train = fetch_20newsgroups(subset='train')
>>> from pprint import pprint
>>> pprint(list(newsgroups_train.target_names))
['alt.atheism',
'comp.graphics',
'comp.os.ms-windows.misc',
'comp.sys.ibm.pc.hardware',
'comp.sys.mac.hardware',
'comp.windows.x',
'misc.forsale',
'rec.autos',
'rec.motorcycles',
'rec.sport.baseball',
'rec.sport.hockey',
'sci.crypt',
'sci.electronics',
'sci.med',
'sci.space',
'soc.religion.christian',
'talk.politics.guns',
'talk.politics.mideast',
'talk.politics.misc',
'talk.religion.misc']
Реальные данные лежат в filenames и target атрибуты. Целевой
атрибут — целочисленный индекс категории:
>>> newsgroups_train.filenames.shape
(11314,)
>>> newsgroups_train.target.shape
(11314,)
>>> newsgroups_train.target[:10]
array([ 7, 4, 4, 1, 14, 16, 13, 3, 2, 4])
Можно загрузить только подвыборку категорий, передав список категорий для загрузки в
sklearn.datasets.fetch_20newsgroups функция:
>>> cats = ['alt.atheism', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train', categories=cats)
>>> list(newsgroups_train.target_names)
['alt.atheism', 'sci.space']
>>> newsgroups_train.filenames.shape
(1073,)
>>> newsgroups_train.target.shape
(1073,)
>>> newsgroups_train.target[:10]
array([0, 1, 1, 1, 0, 1, 1, 0, 0, 0])
Преобразование текста в векторы#
Для того чтобы подавать текстовые данные в прогнозные или кластеризационные модели,
сначала необходимо преобразовать текст в векторы числовых значений, подходящих
для статистического анализа. Это можно сделать с помощью утилит
sklearn.feature_extraction.text как показано в следующем примере, который извлекает TF-IDF векторы
униграммных токенов из подмножества 20news:
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> categories = ['alt.atheism', 'talk.religion.misc',
... 'comp.graphics', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train',
... categories=categories)
>>> vectorizer = TfidfVectorizer()
>>> vectors = vectorizer.fit_transform(newsgroups_train.data)
>>> vectors.shape
(2034, 34118)
Извлеченные векторы TF-IDF очень разреженные, со средним значением 159 ненулевых компонентов на образец в пространстве размерностью более 30000 (менее 0,5% ненулевых признаков):
>>> vectors.nnz / float(vectors.shape[0])
159.01327...
sklearn.datasets.fetch_20newsgroups_vectorized является функцией, которая возвращает готовые к использованию признаки подсчёта токенов вместо имён файлов.
Фильтрация текста для более реалистичного обучения#
Классификатору легко переобучиться на конкретных вещах, которые появляются в данных 20 Newsgroups, таких как заголовки новостных групп. Многие классификаторы достигают очень высоких F-оценок, но их результаты не будут обобщаться на другие документы, которые не из этого временного окна.
Например, рассмотрим результаты мультиномиального наивного байесовского классификатора, который быстро обучается и достигает достойного F-балла:
>>> from sklearn.naive_bayes import MultinomialNB
>>> from sklearn import metrics
>>> newsgroups_test = fetch_20newsgroups(subset='test',
... categories=categories)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> clf = MultinomialNB(alpha=.01)
>>> clf.fit(vectors, newsgroups_train.target)
MultinomialNB(alpha=0.01, class_prior=None, fit_prior=True)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(newsgroups_test.target, pred, average='macro')
0.88213...
(Пример Классификация текстовых документов с использованием разреженных признаков перемешивает обучающие и тестовые данные вместо сегментации по времени, и в этом случае мультиномиальный наивный байесовский классификатор получает гораздо более высокий F-показатель 0.88. У вас уже есть подозрения, что происходит внутри этого классификатора?)
Давайте посмотрим, какие признаки являются наиболее информативными:
>>> import numpy as np
>>> def show_top10(classifier, vectorizer, categories):
... feature_names = vectorizer.get_feature_names_out()
... for i, category in enumerate(categories):
... top10 = np.argsort(classifier.coef_[i])[-10:]
... print("%s: %s" % (category, " ".join(feature_names[top10])))
...
>>> show_top10(clf, vectorizer, newsgroups_train.target_names)
alt.atheism: edu it and in you that is of to the
comp.graphics: edu in graphics it is for and of to the
sci.space: edu it that is in and space to of the
talk.religion.misc: not it you in is that and to of the
Теперь вы можете видеть многое, к чему эти признаки переобучились:
Почти каждая группа отличается наличием заголовков, таких как
NNTP-Posting-Host:иDistribution:появляются чаще или реже.решатель, используя
Слово "article" является значимым признаком, основанным на том, как часто люди цитируют предыдущие сообщения так: "In article [ID статьи], [имя] <[адрес электронной почты]> wrote:"
Другие функции соответствуют именам и адресам электронной почты конкретных людей, которые публиковали в то время.
При таком обилии признаков, отличающих новостные группы, классификаторам почти не нужно определять темы из текста, и все они работают на одинаково высоком уровне.
По этой причине функции, загружающие данные 20 Newsgroups, предоставляют параметр под названием удалить, указывая ему, какую информацию удалять из каждого файла. удалить должен быть кортеж, содержащий любое подмножество
('headers', 'footers', 'quotes'), указывая ему удалять заголовки, блоки подписей и блоки цитирования соответственно.
>>> newsgroups_test = fetch_20newsgroups(subset='test',
... remove=('headers', 'footers', 'quotes'),
... categories=categories)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(pred, newsgroups_test.target, average='macro')
0.77310...
Этот классификатор потерял значительную часть своей F-меры только потому, что мы удалили метаданные, которые мало связаны с классификацией тем. Он теряет еще больше, если мы также удалим эти метаданные из обучающих данных:
>>> newsgroups_train = fetch_20newsgroups(subset='train',
... remove=('headers', 'footers', 'quotes'),
... categories=categories)
>>> vectors = vectorizer.fit_transform(newsgroups_train.data)
>>> clf = MultinomialNB(alpha=.01)
>>> clf.fit(vectors, newsgroups_train.target)
MultinomialNB(alpha=0.01, class_prior=None, fit_prior=True)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(newsgroups_test.target, pred, average='macro')
0.76995...
Некоторые другие классификаторы лучше справляются с этой более сложной версией задачи. Попробуйте
Примерный пайплайн для извлечения и оценки текстовых признаков
пример с и без remove опцию для сравнения результатов.
Соображения по данным
Кливленд Индианс — это бейсбольная команда высшей лиги, базирующаяся в Кливленде, Огайо, США. В декабре 2020 года сообщалось, что «После нескольких месяцев обсуждений, вызванных смертью Джорджа Флойда и национальным переосмыслением расы и колониализма, Кливленд Индианс решили изменить своё название». Владелец команды Пол Долан «чётко дал понять, что команда не сделает своё неофициальное прозвище — Племя — новым названием команды». «Это не будет полушагом от Индианс», — сказал Долан. «У нас не будет названия на тему коренных американцев».
https://www.mlb.com/news/cleveland-indians-team-name-change
Рекомендация
При оценке текстовых классификаторов на данных 20 Newsgroups следует удалять метаданные, связанные с новостными группами. В scikit-learn это можно сделать, установив
remove=('headers', 'footers', 'quotes'). F-мера будет ниже, потому что она более реалистична.Этот текстовый набор данных содержит данные, которые могут быть неприемлемы для некоторых NLP-приложений. Пример приведён в разделе «Соображения по данным» выше. Проблема использования текущих текстовых наборов данных в NLP для таких задач, как завершение предложений, кластеризация и другие приложения, заключается в том, что текст, который является культурно предвзятым и провокационным, будет распространять предубеждения. Это следует учитывать при использовании набора данных, проверке вывода, и предвзятость должна быть задокументирована.
Примеры
8.2.3. Набор данных для распознавания лиц Labeled Faces in the Wild#
Этот набор данных представляет собой коллекцию JPEG-изображений известных людей, собранных в интернете, и подробности доступны на сайте Kaggle:
https://www.kaggle.com/datasets/jessicali9530/lfw-dataset
Каждое изображение центрировано на одном лице. Типичная задача называется верификацией лиц: для пары двух изображений бинарный классификатор должен предсказать, принадлежат ли два изображения одному человеку.
Альтернативная задача, Распознавание лиц или Идентификация лиц: по изображению лица неизвестного человека определить имя человека, обратившись к галерее ранее просмотренных изображений идентифицированных лиц.
Как верификация лиц, так и распознавание лиц — это задачи, которые обычно выполняются на выходе модели, обученной для обнаружения лиц. Самая популярная модель для обнаружения лиц называется Viola-Jones и реализована в библиотеке OpenCV. Лица LFW были извлечены этим детектором лиц с различных веб-сайтов.
Характеристики набора данных:
Классы |
5749 |
Всего образцов |
13233 |
Снижение размерности |
5828 |
Признаки |
действительное число от 0 до 255 |
Использование#
scikit-learn предоставляет два загрузчика, которые автоматически скачивают, кэшируют, разбирают файлы метаданных, декодируют jpeg и преобразуют интересные срезы в memmapped numpy массивы. Размер этого набора данных превышает 200 МБ. Первая загрузка обычно занимает более пары минут для полного декодирования соответствующей части JPEG файлов в numpy массивы. Если набор данных уже был загружен один раз, последующие загрузки занимают менее 200 мс, используя memmapped версию, сохранённую на диске в
~/scikit_learn_data/lfw_home/ папку с помощью joblib.
Первый загрузчик используется для задачи идентификации лиц: задача многоклассовой классификации (следовательно, обучение с учителем):
>>> from sklearn.datasets import fetch_lfw_people
>>> lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4)
>>> for name in lfw_people.target_names:
... print(name)
...
Ariel Sharon
Colin Powell
Donald Rumsfeld
George W Bush
Gerhard Schroeder
Hugo Chavez
Tony Blair
Срез по умолчанию имеет прямоугольную форму вокруг лица, удаляя большую часть фона:
>>> lfw_people.data.dtype
dtype('float32')
>>> lfw_people.data.shape
(1288, 1850)
>>> lfw_people.images.shape
(1288, 50, 37)
Каждый из 1140 лица присваиваются одному идентификатору человека в target
массив:
>>> lfw_people.target.shape
(1288,)
>>> list(lfw_people.target[:10])
[5, 6, 3, 1, 0, 1, 3, 4, 3, 0]
Второй загрузчик обычно используется для задачи верификации лиц: каждый образец представляет собой пару из двух изображений, принадлежащих или не принадлежащих одному человеку:
>>> from sklearn.datasets import fetch_lfw_pairs
>>> lfw_pairs_train = fetch_lfw_pairs(subset='train')
>>> list(lfw_pairs_train.target_names)
['Different persons', 'Same person']
>>> lfw_pairs_train.pairs.shape
(2200, 2, 62, 47)
>>> lfw_pairs_train.data.shape
(2200, 5828)
>>> lfw_pairs_train.target.shape
(2200,)
Как для sklearn.datasets.fetch_lfw_people и
sklearn.datasets.fetch_lfw_pairs функции возможно получить дополнительное измерение с каналами RGB, передав color=True, в этом случае форма будет
(2200, 2, 62, 47, 3).
The sklearn.datasets.fetch_lfw_pairs наборы данных подразделяются на 3 подмножества: разработка train набор, разработка test набор и
оценка 10_folds набор, предназначенный для вычисления метрик производительности с использованием
схемы перекрестной проверки с 10 фолдами.
Ссылки
Labeled Faces in the Wild: База данных для изучения распознавания лиц в неограниченных условиях. Gary B. Huang, Manu Ramesh, Tamara Berg и Erik Learned-Miller. University of Massachusetts, Amherst, Technical Report 07-49, October, 2007.
Примеры
8.2.4. Forest covertypes#
Образцы в этом наборе данных соответствуют участкам леса размером 30×30 м в США, собранным для задачи прогнозирования типа растительного покрова каждого участка, т.е. доминирующего вида деревьев. Существует семь типов покрова, что делает эту задачу многоклассовой классификацией. Каждый образец имеет 54 характеристики, описанные на домашней странице набора данных. Некоторые признаки являются булевыми индикаторами, в то время как другие — дискретными или непрерывными измерениями.
Характеристики набора данных:
Классы |
7 |
Всего образцов |
581012 |
Снижение размерности |
54 |
Признаки |
int |
sklearn.datasets.fetch_covtype загрузит набор данных covertype; он возвращает словареподобный объект 'Bunch' с матрицей признаков в data член и целевые значения в target. Если необязательный аргумент ‘as_frame’
установлен в ‘True’, он вернет data и target как pandas data frame, и будет дополнительный член frame также. Набор данных будет загружен из интернета при необходимости.
8.2.5. набор данных RCV1#
Reuters Corpus Volume I (RCV1) — это архив из более чем 800 000 вручную категоризированных новостных статей, предоставленный Reuters, Ltd. для исследовательских целей. Набор данных подробно описан в [1].
Характеристики набора данных:
Классы |
103 |
Всего образцов |
Этот подкласс |
Снижение размерности |
47236 |
Признаки |
действительное, между 0 и 1 |
sklearn.datasets.fetch_rcv1 загрузит следующую версию: RCV1-v2, векторы, полные наборы, темы с множественными метками:
>>> from sklearn.datasets import fetch_rcv1
>>> rcv1 = fetch_rcv1()
Возвращает объект, подобный словарю, со следующими атрибутами:
dataМатрица признаков — это разреженная матрица scipy CSR с 804414 образцами и 47236 признаками. Ненулевые значения содержат косинус-нормированные векторы log TF-IDF. Почти хронологическое разделение предложено в [1]: Первые 23149 образцов — обучающий набор. Последние 781265 образцов — тестовый набор. Это соответствует официальному хронологическому разделению LYRL2004. Массив имеет 0.16% ненулевых значений:
>>> rcv1.data.shape
(804414, 47236)
target:
Целевые значения хранятся в разреженной матрице scipy CSR с 804414 выборками и 103 категориями. Каждая выборка имеет значение 1 в своих категориях и 0 в других. Массив имеет 3.15% ненулевых значений:
>>> rcv1.target.shape
(804414, 103)
sample_id:
Каждый образец может быть идентифицирован по его ID, в диапазоне (с пропусками) от 2286 до 810596:
>>> rcv1.sample_id[:3]
array([2286, 2287, 2288], dtype=uint32)
target_names:
Целевые значения — это темы каждого образца. Каждый образец принадлежит
по крайней мере одной теме и до 17 тем. Всего 103 темы, каждая
представлена строкой. Их частоты в корпусе охватывают пять порядков
величины, от 5 вхождений для ‘GMIL’ до 381327 для ‘CCAT’:
>>> rcv1.target_names[:3].tolist()
['E11', 'ECAT', 'M11']
Набор данных будет загружен из домашняя страница rcv1 если необходимо. Сжатый размер составляет около 656 МБ.
Ссылки
8.2.6. Набор данных Kddcup 99#
Набор данных KDD Cup ‘99 был создан путем обработки частей tcpdump набора данных оценки системы обнаружения вторжений (IDS) DARPA 1998 года, созданного лабораторией MIT Lincoln [2]. Искусственные данные (описанные на домашняя страница набора данных) был сгенерирован с использованием закрытой сети и вручную внедренных атак для создания большого количества различных типов атак с нормальной активностью на фоне. Поскольку первоначальной целью было создание большого набора данных для обучения алгоритмов обучения с учителем, существует большая доля (80.1%) аномальных данных, что нереалистично в реальном мире и неприемлемо для обнаружения аномалий без учителя, которое направлено на обнаружение 'аномальных' данных, т.е.:
качественно отличающиеся от нормальных данных
в большом меньшинстве среди наблюдений.
Таким образом, мы преобразуем набор данных KDD в два разных набора данных: SA и SF.
SA получается простым выбором всех нормальных данных и небольшой доли аномальных данных, чтобы дать долю аномалий в 1%.
SF получается как в [3] просто выбирая данные, у которых атрибут logged_in положителен, таким образом фокусируясь на атаке вторжения, что дает долю в 0.3% атак.
http и smtp — это два подмножества SF, соответствующих третьему признаку, равному 'http' (соответственно 'smtp').
Общая структура KDD:
Всего образцов |
4898431 |
Снижение размерности |
41 |
Признаки |
дискретный (int) или непрерывный (float) |
Целевые переменные |
str, 'normal.' или название типа аномалии |
Структура SA:
Всего образцов |
976158 |
Снижение размерности |
41 |
Признаки |
дискретный (int) или непрерывный (float) |
Целевые переменные |
str, 'normal.' или название типа аномалии |
Структура SF:
Всего образцов |
699691 |
Снижение размерности |
4 |
Признаки |
дискретный (int) или непрерывный (float) |
Целевые переменные |
str, 'normal.' или название типа аномалии |
http структура:
Всего образцов |
619052 |
Снижение размерности |
3 |
Признаки |
дискретный (int) или непрерывный (float) |
Целевые переменные |
str, 'normal.' или название типа аномалии |
структура smtp:
Всего образцов |
95373 |
Снижение размерности |
3 |
Признаки |
дискретный (int) или непрерывный (float) |
Целевые переменные |
str, 'normal.' или название типа аномалии |
sklearn.datasets.fetch_kddcup99 загрузит набор данных kddcup99; он возвращает объект, похожий на словарь, с матрицей признаков в data член и целевые значения в targetНеобязательный аргумент "as_frame" преобразует
data в pandas DataFrame и target в pandas Series. Набор данных будет загружен из интернета при необходимости.
Ссылки
Анализ и результаты оценки обнаружения вторжений DARPA 1999 года, Ричард Липпманн, Джошуа В. Хейнс, Дэвид Дж. Фрид, Джонатан Корба, Кумар Дас.
K. Yamanishi, J.-I. Takeuchi, G. Williams, and P. Milne. Online unsupervised outlier detection using finite mixtures with discounting learning algorithms. In Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining, pages 320-324. ACM Press, 2000.
8.2.7. California Housing dataset#
Характеристики набора данных:
- Количество экземпляров:
20640
- Количество атрибутов:
8 числовых, прогнозирующих признаков и целевая переменная
- Информация об атрибутах:
MedInc медианный доход в группе блоков
HouseAge медианный возраст домов в блоке
AveRooms среднее количество комнат на домохозяйство
AveBedrms среднее количество спален на домохозяйство
Население население группы блоков
AveOccup среднее количество членов домохозяйства
Широта широта блочной группы
Долгота долгота блочной группы
- Отсутствующие значения атрибутов:
None
Этот набор данных был получен из репозитория StatLib. https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html
Целевая переменная — это медианная стоимость дома для районов Калифорнии, выраженная в сотнях тысяч долларов ($100,000).
Этот набор данных был получен из переписи населения США 1990 года, используя одну строку на блок-группу переписи. Блок-группа — это наименьшая географическая единица, для которой Бюро переписи населения США публикует выборочные данные (блок-группа обычно имеет население от 600 до 3000 человек).
Домохозяйство - это группа людей, проживающих в одном доме. Поскольку среднее количество комнат и спален в этом наборе данных предоставляется на домохозяйство, эти столбцы могут принимать удивительно большие значения для блок-групп с небольшим количеством домохозяйств и множеством пустых домов, таких как курортные зоны.
Его можно загрузить/скачать с помощью
sklearn.datasets.fetch_california_housing функция.
Ссылки
Pace, R. Kelley и Ronald Barry, Sparse Spatial Autoregressions, Statistics and Probability Letters, 33:291-297, 1997.
8.2.8. Набор данных о распространении видов#
Этот набор данных представляет географическое распределение двух видов в Центральной и Южной Америке. Два вида:
"Bradypus variegatus" , ленивец Брауна.
"Microryzomys minutus" , также известная как Лесная Малая Рисовая Крыса, грызун, обитающий в Перу, Колумбии, Эквадоре, Перу и Венесуэле.
Набор данных не является типичным набором данных, поскольку Bunch
содержащий атрибуты data и target не возвращается. Вместо этого у нас есть информация, позволяющая создать "карту плотности" различных видов.
Сетка для карты может быть построена с использованием атрибутов x_left_lower_corner,
y_left_lower_corner, Nx, Ny и grid_size, которые соответствуют
координатам x и y нижнего левого угла сетки, количеству точек вдоль осей x и y и размеру шага на сетке.
Плотность в каждой точке сетки содержится в coverage атрибут.
Наконец, train и test атрибуты содержат информацию о местоположении вида в конкретном месте.
Набор данных предоставлен Phillips et. al. (2006).
Ссылки
“Maximum entropy modeling of species geographic distributions” С. Дж. Филлипс, Р. П. Андерсон, Р. Э. Шапир - Ecological Modelling, 190:231-259, 2006.
Примеры