Это набор данных синтетической классификации с данными из двух классов, показанных красным и синим. Синий класс генерируется из одного гауссиана, а красный класс получается из смеси двух гауссианов.
Поскольку у нас есть априорные вероятности (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, но как явно представить кривую?
В общем смысле кажется, что вы хотите построить неявную функцию 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). Удачи и приятного времяпровождения.
@Dimosthenis Первый. Можно ли построить такую границу решения через явную функцию, когда известны все связанные вероятности?
@RobertDodier. Ты понял. Я также хотел бы знать, может ли неявная функция быть представлена явно или нет.
Когда для каждого класса имеется только одна гауссова выпуклость, граница принятия решения представляет собой конический участок. Я не думаю, что с более чем одним выступом на класс можно дать простую характеристику.
Вы ищете функциональную форму этой конкретной границы решения или как получить приближение, построив модель машинного обучения?