Как сделать линейно отделимую двоичную классификацию?

Я хочу решить следующую задачу оптимизации -

Функция стоимости: 1/2 || W || ^ 2

Подлежит: Y_i (w.X_i - b)> = 1

куда X матрица 700x3, Y вектор хранит метку классов для этих экземпляров (оценивается как 1/-1) и w.X_i является точечным произведением w а также X_i,

Я использую CVX -

cvx_begin
    variable W(3);
    variable B;
    minimize (0.5*W'*W)
    subject to 
        Y'*(X*W - B) >= 1;
cvx_end

тогда я планирую, w1.x1 + w2.x2 - bкоторая, кажется, не разделяет гиперплоскость?

Что я делаю не так?

1 ответ

Короче говоря: когда вы делаете w1.x1 + w2.x2 - b Вы пытаетесь указать гиперплоскость в определенном месте, что также совпадает с указанием конкретной точки на векторе. Чтобы сделать что-либо в трехмерном пространстве, вам нужно использовать все три измерения, поэтому: w1.x1 + w2.x2 +w3.x3 - b

Более подробно: при выполнении линейной классификации, подобной этой, задачу можно рассматривать двумя способами:

  1. Нахождение разделяющей гиперплоскости таким образом, чтобы все выборки одного класса находились на одной стороне, а все выборки другого класса - на другой стороне.

  2. Нахождение проекции многомерного пространства, в котором находятся образцы, в одну размерную линию, так что на линии есть точка, которая четко разделяет их.

Это идентичные задачи, так как одно измерение в 2, по сути, определяет, как далеко каждый образец находится от разделяющей гиперплоскости (и на какой стороне находится указанный образец). Я считаю, что это помогает помнить обе эти точки зрения, особенно потому, что разделяющая гиперплоскость - это плоскость, ортогональная одномерному вектору.

Итак, в случае, если вы имеете дело, вектор веса w предоставленная модель используется для проецирования образцов в матрицу X на одну размерную линию и смещение b указывает, в какой точке вдоль этого вектора возникает разделяющая гиперплоскость. Вычитая b из проецируемых значений они сдвигаются так, что эта гиперплоскость является той, которая ортогональна линии в точке 0, что обеспечивает простое пороговое значение.

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