PRML: как построить минимальную границу принятия решения о частоте ошибочной классификации?

PRML: как построить минимальную границу принятия решения о частоте ошибочной классификации?

Это набор данных синтетической классификации с данными из двух классов, показанных красным и синим. Синий класс генерируется из одного гауссиана, а красный класс получается из смеси двух гауссианов.

Поскольку у нас есть априорные вероятности (p (C0) = 0,5 и p (C1) = 0,5) и условные вероятности класса (один гауссиан p (x | C0) и смесь двух гауссианов p (x | C1)) , мы можем вычислить истинные апостериорные вероятности и построить контурные линии и контуры с заливкой, как показано справа. Но как построить минимальную границу принятия решения о частоте ошибочной классификации (зеленая линия)?

Данные генерируются как:

import numpy as np
import matplotlib.pyplot as plt

def create_toy_data(mu1, mu2, mu3, sigma1, sigma2, sigma3):
    x0 = np.random.multivariate_normal(mu1, sigma1, 100)
    x1 = np.random.multivariate_normal(mu2, sigma2, 50)
    x2 = np.random.multivariate_normal(mu3, sigma3, 50)
    return np.concatenate([x0, x1, x2]), np.concatenate([np.zeros(100, dtype='int'), np.ones(100, dtype='int')])

Я знаю, что минимальная граница принятия решения по скорости ошибочной классификации - p (C0 | x) = p (C1 | x) = 0,5, но как явно представить кривую?

Вы ищете функциональную форму этой конкретной границы решения или как получить приближение, построив модель машинного обучения?

Dimosthenis 31.10.2018 20:08

В общем смысле кажется, что вы хотите построить неявную функцию p (C1 | x) = 0,5 (или, что эквивалентно, p (C0 | x) = 0,5). Учитывая расположение и параметры формы гауссовских капель, вы можете построить функцию, которая возвращает p (C1 | x) для любого x = (x1, x2), где x1, x2 - два измерения входного пространства. Вы хотели бы построить неявную функцию p (C1 | (x1, x2)) = 0,5 по входному пространству. Краткий поиск в Интернете показывает, что Matplotlib не подходит для этого; кто-то предложил Sympy (sympy.org). Удачи и приятного времяпровождения.

Robert Dodier 31.10.2018 23:43

@Dimosthenis Первый. Можно ли построить такую ​​границу решения через явную функцию, когда известны все связанные вероятности?

Charles 01.11.2018 00:54

@RobertDodier. Ты понял. Я также хотел бы знать, может ли неявная функция быть представлена ​​явно или нет.

Charles 01.11.2018 01:00

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

Robert Dodier 01.11.2018 01:22
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
356
0

Другие вопросы по теме