2

У меня есть куча точек в 2D-сюжете. Красные точки указывают, когда мой эксперимент стабилен, черный, когда он нестабилен. Две области четко разделены линией в этом логарифмическом графике, и я хотел бы найти лучшую «разделительную линию», т. Е. Линию, которая дает критерий для разделения двух областей и имеет минимальную ошибку по этому критерию. Я сделал поиск в разных книгах и в Интернете, но я не мог найти никакого решения для решения этой проблемы. Знаете ли вы о каком-либо инструменте? Прежде всего, нужно определить ошибку. Одна вещь, которая приходит в мой ум: если неизвестная линия ах + Ьу + с = 0, для каждой точки (x0, y0) определим функцию ошибки вроде следующего:Как найти лучшую прямую линию, разделяющую две области, имеющие точки с двумя разными свойствами

E=0 if point lays on the correct side of the line. 
E= distance(a*x+b*y+c=0,(x0,y0)) = |a*x0+b*y0+c|/sqrt(a^2+b^2) if the point 
    lies on the wrong side. 

и мы минимизировать сумма ошибок. Не просто, хотя есть порог. Если вы, ребята, знаете о некоторой ссылке или ссылке подходов, которые решают эту проблему, которая будет оценена по достоинству. Приветствия A.

enter image description here

+0

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

+0

Почему? есть много вопросов вокруг веб-сайта, спрашивающих: что является лучшей линией для ..., которая является лучшим способом найти пересечение между этим и тем ... Я не вижу проблемы. – Lupocci

ответ

3

Некоторые рефов: Википедия Linear classifier и Support vector machine (СВМ),
scikit-learn SVM, пример с 3-х классов,
questions/tagged/classification on SO,
3000 более questions/tagged/classification on stats.stackexchange,
.

Для вашей проблемы 2 класса, выполните следующие действия:

  1. найти середите RMID красных точек, Bmid из черных, Середины партии

  2. рисовать линии L от Rmid to Bmid

  3. (гипер) плоскость через середину, перпендикулярную линии L, является тем, что вы хотите: линейным классификатором.
    Или вы можете просто сравнить расстояния | x - Rmid | и | x - Bmid |: вызов x ближе Rmid красный, ближе Bmid черный.

Но есть еще что сказать. проецирования точек данных на линию L дает 1-мерную задачу:

rrrrrrrrrrbrrrrrrrrbbrrr | rrbbbbbbbbbbbbbbb 

Это хорошая идея, чтобы построить все точки на этой линии, к см и лучше понять данные.
(для точки облака в 5 или 10 размеров, это может быть весело и/или информативный смотреть на 2d или 3d ломтиков под разными углами.)

Каждый разрез, «|» выше, дает «спутанность матрицу» из 4-х цифр:

R-correct R-called-B e.g. 490 10 
B-called-R B-correct   50 450 

Это дает примерное представление о скорости ошибок ваших предсказаний красного/черных; напечатайте его, обсудите.
Наилучший разрез зависит от затрат, , например. если вызов R a B в 10 раз или в 100 раз хуже, чем вызов B a R.

Если красные точки и черные точки имеют разный разброс/ковариацию, см. Fisher's linear discriminant.

(«SVM» жаргон для класса методов «хорошо» разделяющие гиперплоскости/гиперповерхность - нет «машины».)