На самом деле я работаю с SVM (Support Vector Machine).Я хочу вычислить средневзвешенное значение баллов одного класса.вот визуализация моего класса.
Я пытаюсь минимизировать этот вмещающий шар.
Примечание : Как вы можете видеть пунктирную букву D. На самом деле это круг, я просто его обрезал, потому что он пересекает линию (гиперплоскость).
Я только что вычислилсредние значения этих точек и евклидово расстояние каждой точки от среднего.и затем точка, имеющая максимальное расстояние от среднего, я считаю его радиусом окружности.
def compute_mean(negative_x):
negative_x = list(negative_x)
no_of_samples = len(negative_x)
sum_of_samples = sum(negative_x)
num_of_features = len(negative_x[0])
means = []
for i in range(0,num_of_features):
means.append(sum_of_samples[i]/no_of_samples)
distances = compute_distance(means,negative_x)
mean_and_distance = [means,distances]
return mean_and_distance
Теперь, используя радиус и среднее значение, я просто рисую круг, используя окружность (но это длинная история).Я просто пришел к моему вопросу, что, как показано на рис. Выше, из-за некоторых точек вмещающий шар слишком велик.поэтому я хочу вычислить взвешенное среднее, чтобы среднее сместилось в сторону точек, оказывающих небольшое влияние на простое среднее.За счет чего Круг сокращается.
Если у кого-то есть другая идея уменьшить этот вмещающий шар, я буду очень благодарен.