Обсуждение:Практикум на ЭВМ (317)/2011-2012
Материал из MachineLearning.
м  (→Постановка, данные)  | 
				 (→Постановка, данные)  | 
			||
| Строка 18: | Строка 18: | ||
Матлаб функция, которая записывает результат классификации, представленный в виде матрицы Nx83 (как <code>Y</code>), в файл готовый для отправки в систему: [http://dl.dropbox.com/u/20300574/jrs12_topic/sparse2labels.m].    | Матлаб функция, которая записывает результат классификации, представленный в виде матрицы Nx83 (как <code>Y</code>), в файл готовый для отправки в систему: [http://dl.dropbox.com/u/20300574/jrs12_topic/sparse2labels.m].    | ||
| + | |||
| + | '''Пример''': решение, которое каждому объекту ставит в соответствие 5 наиболее часто встречаемых тематик  | ||
| + |  load('data.mat');  | ||
| + |  [~, idx] = sort(sum(Y), 'descend');     % после чего в idx номера тематик в порядке убывания их популярности  | ||
| + |  Y_t = sparse(size(X_t, 1), size(Y, 2)); % пустая матрица ответа  | ||
| + |  Y_t(:,idx(1:5)) = 1;                    % для каждого объекта выбираем 5 наиболее популярных тематик  | ||
| + |  sparse2labels(Y_t, 'majority.csv');  | ||
[[Участник:Peter Romov|Peter Romov]] 16:15, 9 февраля 2012 (MSK)  | [[Участник:Peter Romov|Peter Romov]] 16:15, 9 февраля 2012 (MSK)  | ||
Версия 13:29, 9 февраля 2012
Содержание | 
Реальная задача «Topical Classification of Biomedical Research Papers»
Постановка, данные
Подробное описание задачи: [1].
Объект (журнальная статья) описывается 25640 признаками --- целые числа 0...1000. Каждый признак означает насколько сильно журнальная статья связана с медецинским термином. Признаковые описания разреженные: большая часть признаков у одного объекта равны 0, что означает что одна журнальная статья связана лишь с небольшим числом медецинских терминов.
Имеется 83 тематик (topics). По признаковому описанию журнальной статьи нужно сказать, к каким тематикам она относится. Выход классификатора: подмножество чисел 1..83.
Данные:
- тренировочная выборка, 10'000 объектов, для каждого объекта список тематик, к которым он относится
 - тестовая выборка, 10'000 объектов
 
На сайте соревнования выложены текстовые файлы с матрицами объект-признак, после распаковки они весят под 500МБ и очень долго считываются в матлаб. Я сделал MAT-файл data.mat (8МБ), в котором лежат sparse-матрицы (вид представления матриц в матлабе при котором запоминается список ненулевых элементов матрицы):
-  
X,X_t— объект-признак для тренировочной и тестовой выборок; -  
Y— матрица правильных ответов для тренировочной выборки, размера 10'000x83, в каждой строке стоят единицы на месте столбцов с номерами выбраных тематик. 
Матлаб функция, которая записывает результат классификации, представленный в виде матрицы Nx83 (как Y), в файл готовый для отправки в систему: [2].  
Пример: решение, которое каждому объекту ставит в соответствие 5 наиболее часто встречаемых тематик
load('data.mat');
[~, idx] = sort(sum(Y), 'descend');     % после чего в idx номера тематик в порядке убывания их популярности
Y_t = sparse(size(X_t, 1), size(Y, 2)); % пустая матрица ответа
Y_t(:,idx(1:5)) = 1;                    % для каждого объекта выбираем 5 наиболее популярных тематик
sparse2labels(Y_t, 'majority.csv');
Peter Romov 16:15, 9 февраля 2012 (MSK)

