<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.170.75.31&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.170.75.31&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/188.170.75.31"/>
		<updated>2026-06-10T19:24:53Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D0%B2%D0%B0%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=82485</id>
		<title>Предварительная обработка данных</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D0%B2%D0%B0%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=82485"/>
				<updated>2022-06-28T17:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;188.170.75.31: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Процесс подготовки данных для дальнейшего анализа называется '''предобработка'''&lt;br /&gt;
&lt;br /&gt;
= Нормализация =&lt;br /&gt;
Набор данных на самом деле содержит в себе единицы измерения, которые возможно будут указаны в формальном описании. Эти единицы измерения отбрасываются, чтобы набор данных имел только число.&lt;br /&gt;
Чтобы это сделать необходимо, чтобы все объекты были приведены к единому формату (всё в килограммах или всё в метрах)&lt;br /&gt;
&lt;br /&gt;
//Пример про разницу машин&lt;br /&gt;
&lt;br /&gt;
== Базовые методы нормализации данных ==&lt;br /&gt;
Применяются независимо к столбцу X&lt;br /&gt;
&lt;br /&gt;
Важно в sklearn.preprocessing есть метод normalize, но это не то, что нам нужно, он рассматривает нормализацию с геометрической точки зрения&lt;br /&gt;
(представляет объект в виде вектора), а не по столбцам&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Минмакс, [0;1] масштабирование''' &lt;br /&gt;
&amp;lt;tex&amp;gt; x_{new} = \dfrac{x_{old} - min[X]}{max[X] - min[X]}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После нормализации: &amp;lt;math&amp;gt;min[X_{new}] = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;max[X_{new}] = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Стандартизация, Z-масштабирование'''&lt;br /&gt;
&amp;lt;tex&amp;gt; x_{new} = \dfrac{x_{old} - E[X]}{D[X]}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После нормализации: &amp;lt;math&amp;gt;E[X_{new}] = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;D[X_{new}] = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// == декорреляция == пока не нашёл&lt;br /&gt;
&lt;br /&gt;
= Задача заполнения пропусков. =&lt;br /&gt;
&lt;br /&gt;
== Откуда берутся пропуски? ==&lt;br /&gt;
*Решаем задачу поиска аномалий для столбцов. Когда находим аномальное значение в столбце. Можно сказать, что это не аномалия, а ошибка и его можно пометить как пропуск&lt;br /&gt;
*2 набора данных объединяем(рис1(1 лекция, стр60)). Из-за того, что эти наборы данных немного разные(в разных наборах данных были разные признаки) и после объединения получатся пропуски.&lt;br /&gt;
// про разные скорости &lt;br /&gt;
*Конвертировать разреженный набор данных в обычный. Недостающие значения сконцентрируются(3:45:26) в пропуски.//(Вы будете делать таблицу)&lt;br /&gt;
&lt;br /&gt;
== Как кодируются пропуски? ==&lt;br /&gt;
*В CSV не стандартизировано, могут быть: “?”, “ “(пробел), “_”, любой другой символ или например две запятых подряд или пустая строка&lt;br /&gt;
*В ARFF файле: “?”&lt;br /&gt;
*В программе(Строка / объект): Null, None, пустая строка&lt;br /&gt;
*В категории(кодирующейся от 0 до k-1): -1 или k&lt;br /&gt;
*Число: NaN&lt;br /&gt;
&lt;br /&gt;
== Базовые решения: ==&lt;br /&gt;
*Удаление&lt;br /&gt;
*Заменить&lt;br /&gt;
*Добавить&lt;br /&gt;
&lt;br /&gt;
Если алгоритм делает что-то быстрее или умнее чем базовое решение, то утверждается, что '''алгоритм умеет работать с пропусками'''&lt;br /&gt;
&lt;br /&gt;
=== Удаление ===&lt;br /&gt;
Если в столбце есть пропуск - берём и удаляем его из рассмотрения.&lt;br /&gt;
&lt;br /&gt;
Можно удалять строки(объекты), '''НО''' могут возникнуть проблемы: если в столбце были пропуски в тренировочном наборе данных, то скорее всего в этом столбце они будут и в тестовом наборе.&lt;br /&gt;
&lt;br /&gt;
=== Замена ===&lt;br /&gt;
Выделяют 2 подхода:&lt;br /&gt;
==== Общий подход: ====&lt;br /&gt;
Обучить модель, которая умеет учитывать пропуски, предсказывать значения текущего столбца.&lt;br /&gt;
рис2(1 лекция, стр61, левый)&lt;br /&gt;
Предполагаем, что второй объект ближе всего к четвёртому, поэтому скорость заполняем 160, &lt;br /&gt;
а первый ближе к пятому, поэтому цвет заполняем красный&lt;br /&gt;
&lt;br /&gt;
==== Частный случай: ==== &lt;br /&gt;
заполнение средним арифметическим / модой&lt;br /&gt;
рис2(1 лекция, стр61, правый)&lt;br /&gt;
&lt;br /&gt;
//про zero-rule classification&lt;br /&gt;
&lt;br /&gt;
Среднее арифметическое(230, 160, 80, 250) = 180&lt;br /&gt;
&lt;br /&gt;
Мода(красный, синий, зелёный, синий) = синий&lt;br /&gt;
&lt;br /&gt;
==== Константная замена ====&lt;br /&gt;
Применяется в случае, когда мы знаем, что кодирует пропуск&lt;br /&gt;
&lt;br /&gt;
(например) разреженная таблица состоит из слов и количества вхождений этого слова в текст, если слово в тексте не встречалось, то на месте количества может стоять пропуск, что эквивалентно 0, если же храним встречалось или нет, то на месте пропуска может быть false&lt;br /&gt;
&lt;br /&gt;
=== Добавление ===&lt;br /&gt;
*Если признак категориальный - добавляем к нему новое значение &amp;quot;пропуск&amp;quot;(увеличиваем количество категорий на 1)&lt;br /&gt;
*Если признак числовой - добавляем новый бинарный признак, было ли данное значение пропущено, а само значение заменять методами описанными выше&lt;br /&gt;
рис3(1 лекция, страница 62)&lt;br /&gt;
&lt;br /&gt;
== Отказ алгоритмов == &lt;br /&gt;
(3:52:00) возвращение дата-сетов с пропусками&lt;br /&gt;
&lt;br /&gt;
== Задача предсказания и заполнения пропусков ==&lt;br /&gt;
Задачу заполнения пропусков можно свести к задаче предсказания&lt;br /&gt;
рис4(1 лекция, страница 64 верхняя часть)&lt;br /&gt;
&lt;br /&gt;
Есть набор данных, который условно разбит на train и test. Можно сказать, что значения test в столбце Y пропущены и вместо задачи обучения с учителем решать задачу заполнения пропусков.&lt;br /&gt;
&lt;br /&gt;
В случае задачи обучения без учителя можно сказать, что все значения в столбце пропущены&lt;br /&gt;
рис5(1 лекция, страница 64 справа снизу)&lt;br /&gt;
&lt;br /&gt;
== Рекомендательные системы ==&lt;br /&gt;
'''Коллаборативная(совместная) фильтрация'''&lt;br /&gt;
&lt;br /&gt;
Есть множество пользователей и множество предметов, которые эти пользователи оценят. Нужно понять, как определённый пользователь оценит предмет, который до этого не оценивал.&lt;br /&gt;
рис6(1 лекция, страница 65)&lt;br /&gt;
&lt;br /&gt;
Эта задача не решается методами заполнения пропуска. Но методами рекомендательной систем можно решить задачу заполнения пропусков.&lt;br /&gt;
&lt;br /&gt;
== Обучение на привилегированных данных ==&lt;br /&gt;
Задача обучения с учителе, но к X даётся некоторый X', про который известно, что в тестовом множестве X' будет пропущен &lt;br /&gt;
рис7(1 лекция, страница 66)&lt;br /&gt;
&lt;br /&gt;
Базовые решения:&lt;br /&gt;
*Не использовать X'&lt;br /&gt;
*Обучить модель &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt; предсказывать X' по X. Затем обучить модель &amp;lt;math&amp;gt;a_2&amp;lt;/math&amp;gt; предсказывать Y по X и &amp;lt;math&amp;gt; a_1&amp;lt;/math&amp;gt;(X)&lt;br /&gt;
*Обучать предсказывать X' и Y.&lt;br /&gt;
&lt;br /&gt;
(Пример) &lt;br /&gt;
Предсказать результат футбольного матча(победа/поражение)&lt;br /&gt;
Привелигированные данные: число голов, число красных/ жёлтых карточек&lt;br /&gt;
&lt;br /&gt;
== Обучение на частично размеченных данных ==&lt;br /&gt;
В тренировачном множестве только часть объектов имеют значение целевой переменной Y, у остальных объектов тренировочного и тестового множества значение Y пропущено.&lt;br /&gt;
рис8(1 лекция, страница 67)&lt;br /&gt;
&lt;br /&gt;
Базовое решение:&lt;br /&gt;
*Не использовать объекты у которых пропущен целевой признак&lt;br /&gt;
*Не использовать целевой признак для обучения. Размеченные объекты(с заданным Y) можно использовать для тестирования(как внешнюю меру)&lt;br /&gt;
&lt;br /&gt;
//Активное обучение&lt;br /&gt;
//Обучение с подкреплением&lt;/div&gt;</summary>
		<author><name>188.170.75.31</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D0%B2%D0%B0%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=82484</id>
		<title>Предварительная обработка данных</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D0%B2%D0%B0%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=82484"/>
				<updated>2022-06-28T17:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;188.170.75.31: Новая страница: «Процесс подготовки данных для дальнейшего анализа называется '''предобработка'''  = Норма…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Процесс подготовки данных для дальнейшего анализа называется '''предобработка'''&lt;br /&gt;
&lt;br /&gt;
= Нормализация =&lt;br /&gt;
Набор данных на самом деле содержит в себе единицы измерения, которые возможно будут указаны в формальном описании. Эти единицы измерения отбрасываются, чтобы набор данных имел только число.&lt;br /&gt;
Чтобы это сделать необходимо, чтобы все объекты были приведены к единому формату (всё в килограммах или всё в метрах)&lt;br /&gt;
//Пример про разницу машин&lt;br /&gt;
&lt;br /&gt;
== Базовые методы нормализации данных ==&lt;br /&gt;
Применяются независимо к столбцу X&lt;br /&gt;
&lt;br /&gt;
Важно в sklearn.preprocessing есть метод normalize, но это не то, что нам нужно, он рассматривает нормализацию с геометрической точки зрения&lt;br /&gt;
(представляет объект в виде вектора), а не по столбцам&lt;br /&gt;
&lt;br /&gt;
'''Минмакс, [0;1] масштабирование''' &lt;br /&gt;
&amp;lt;tex&amp;gt; x_{new} = \dfrac{x_{old} - min[X]}{max[X] - min[X]}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После нормализации: &amp;lt;math&amp;gt;min[X_{new}] = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;max[X_{new}] = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Стандартизация, Z-масштабирование'''&lt;br /&gt;
&amp;lt;tex&amp;gt; x_{new} = \dfrac{x_{old} - E[X]}{D[X]}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После нормализации: &amp;lt;math&amp;gt;E[X_{new}] = 0&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;D[X_{new}] = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// == декорреляция == пока не нашёл&lt;br /&gt;
&lt;br /&gt;
= Задача заполнения пропусков. =&lt;br /&gt;
&lt;br /&gt;
== Откуда берутся пропуски? ==&lt;br /&gt;
*Решаем задачу поиска аномалий для столбцов. Когда находим аномальное значение в столбце. Можно сказать, что это не аномалия, а ошибка и его можно пометить как пропуск&lt;br /&gt;
*2 набора данных объединяем(рис1(1 лекция, стр60)). Из-за того, что эти наборы данных немного разные(в разных наборах данных были разные признаки) и после объединения получатся пропуски.&lt;br /&gt;
// про разные скорости &lt;br /&gt;
*Конвертировать разреженный набор данных в обычный. Недостающие значения сконцентрируются(3:45:26) в пропуски.//(Вы будете делать таблицу)&lt;br /&gt;
&lt;br /&gt;
== Как кодируются пропуски? ==&lt;br /&gt;
*В CSV не стандартизировано, могут быть: “?”, “ “(пробел), “_”, любой другой символ или например две запятых подряд или пустая строка&lt;br /&gt;
*В ARFF файле: “?”&lt;br /&gt;
*В программе(Строка / объект): Null, None, пустая строка&lt;br /&gt;
*В категории(кодирующейся от 0 до k-1): -1 или k&lt;br /&gt;
*Число: NaN&lt;br /&gt;
&lt;br /&gt;
== Базовые решения: ==&lt;br /&gt;
*Удаление&lt;br /&gt;
*Заменить&lt;br /&gt;
*Добавить&lt;br /&gt;
&lt;br /&gt;
Если алгоритм делает что-то быстрее или умнее чем базовое решение, то утверждается, что '''алгоритм умеет работать с пропусками'''&lt;br /&gt;
&lt;br /&gt;
=== Удаление ===&lt;br /&gt;
Если в столбце есть пропуск - берём и удаляем его из рассмотрения.&lt;br /&gt;
&lt;br /&gt;
Можно удалять строки(объекты), '''НО''' могут возникнуть проблемы: если в столбце были пропуски в тренировочном наборе данных, то скорее всего в этом столбце они будут и в тестовом наборе.&lt;br /&gt;
&lt;br /&gt;
=== Замена ===&lt;br /&gt;
Выделяют 2 подхода:&lt;br /&gt;
==== Общий подход: ====&lt;br /&gt;
Обучить модель, которая умеет учитывать пропуски, предсказывать значения текущего столбца.&lt;br /&gt;
рис2(1 лекция, стр61, левый)&lt;br /&gt;
Предполагаем, что второй объект ближе всего к четвёртому, поэтому скорость заполняем 160, &lt;br /&gt;
а первый ближе к пятому, поэтому цвет заполняем красный&lt;br /&gt;
&lt;br /&gt;
==== Частный случай: ==== &lt;br /&gt;
заполнение средним арифметическим / модой&lt;br /&gt;
рис2(1 лекция, стр61, правый)&lt;br /&gt;
//про zero-rule classification&lt;br /&gt;
Среднее арифметическое(230, 160, 80, 250) = 180&lt;br /&gt;
Мода(красный, синий, зелёный, синий) = синий&lt;br /&gt;
&lt;br /&gt;
==== Константная замена ====&lt;br /&gt;
Применяется в случае, когда мы знаем, что кодирует пропуск&lt;br /&gt;
(например) разреженная таблица состоит из слов и количества вхождений этого слова в текст, если слово в тексте не встречалось, то на месте количества может стоять пропуск, что эквивалентно 0, если же храним встречалось или нет, то на месте пропуска может быть false&lt;br /&gt;
&lt;br /&gt;
=== Добавление ===&lt;br /&gt;
Если признак категориальный - добавляем к нему новое значение &amp;quot;пропуск&amp;quot;(увеличиваем количество категорий на 1)&lt;br /&gt;
Если признак числовой - добавляем новый бинарный признак, было ли данное значение пропущено, а само значение заменять методами описанными выше&lt;br /&gt;
рис3(1 лекция, страница 62)&lt;br /&gt;
&lt;br /&gt;
== Отказ алгоритмов == &lt;br /&gt;
(3:52:00) возвращение дата-сетов с пропусками&lt;br /&gt;
&lt;br /&gt;
== Задача предсказания и заполнения пропусков ==&lt;br /&gt;
Задачу заполнения пропусков можно свести к задаче предсказания&lt;br /&gt;
рис4(1 лекция, страница 64 верхняя часть)&lt;br /&gt;
Есть набор данных, который условно разбит на train и test. Можно сказать, что значения test в столбце Y пропущены и вместо задачи обучения с учителем решать задачу заполнения пропусков.&lt;br /&gt;
&lt;br /&gt;
В случае задачи обучения без учителя можно сказать, что все значения в столбце пропущены&lt;br /&gt;
рис5(1 лекция, страница 64 справа снизу)&lt;br /&gt;
&lt;br /&gt;
== Рекомендательные системы ==&lt;br /&gt;
'''Коллаборативная(совместная) фильтрация'''&lt;br /&gt;
&lt;br /&gt;
Есть множество пользователей и множество предметов, которые эти пользователи оценят. Нужно понять, как определённый пользователь оценит предмет, который до этого не оценивал.&lt;br /&gt;
рис6(1 лекция, страница 65)&lt;br /&gt;
Эта задача не решается методами заполнения пропуска. Но методами рекомендательной систем можно решить задачу заполнения пропусков.&lt;br /&gt;
&lt;br /&gt;
== Обучение на привилегированных данных ==&lt;br /&gt;
Задача обучения с учителе, но к X даётся некоторый X', про который известно, что в тестовом множестве X' будет пропущен &lt;br /&gt;
рис7(1 лекция, страница 66)&lt;br /&gt;
Базовые решения:&lt;br /&gt;
*Не использовать X'&lt;br /&gt;
*Обучить модель &amp;lt;math&amp;gt;a_1&amp;lt;/math&amp;gt; предсказывать X' по X. Затем обучить модель &amp;lt;math&amp;gt;a_2&amp;lt;/math&amp;gt; предсказывать Y по X и &amp;lt;math&amp;gt; a_1&amp;lt;/math&amp;gt;(X)&lt;br /&gt;
*Обучать предсказывать X' и Y.&lt;br /&gt;
(Пример) &lt;br /&gt;
Предсказать результат футбольного матча(победа/поражение)&lt;br /&gt;
Привелигированные данные: число голов, число красных/ жёлтых карточек&lt;br /&gt;
&lt;br /&gt;
== Обучение на частично размеченных данных ==&lt;br /&gt;
В тренировачном множестве только часть объектов имеют значение целевой переменной Y, у остальных объектов тренировочного и тестового множества значение Y пропущено.&lt;br /&gt;
рис8(1 лекция, страница 67)&lt;br /&gt;
&lt;br /&gt;
Базовое решение:&lt;br /&gt;
*Не использовать объекты у которых пропущен целевой признак&lt;br /&gt;
*Не использовать целевой признак для обучения. Размеченные объекты(с заданным Y) можно использовать для тестирования(как внешнюю меру)&lt;br /&gt;
&lt;br /&gt;
//Активное обучение&lt;br /&gt;
//Обучение с подкреплением&lt;/div&gt;</summary>
		<author><name>188.170.75.31</name></author>	</entry>

	</feed>