Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python. В KNN учитывать вес каждого признака / 2 сообщений из 2, страница 1 из 1
08.07.2021, 19:47
    #40082772
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. В KNN учитывать вес каждого признака
Здравствуйте!

Есть код c условными данными:
Python
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import MinMaxScaler

array = [
    ['SKU1', 7, 1000],
    ['SKU2', 16, 2000],  
    ['SKU3', 10, 3000],
    ['SKU4', 20, 4000],
    #...
]

columns = ['SKU', 'Признак1', 'Признак2']

df = pd.DataFrame(array, columns = columns)

min_max_scaler = MinMaxScaler(feature_range  = (0.0, 1.0)) 
min_max_scaler.fit(df.iloc[:,1:])

df[df.iloc[:,1:].columns] = min_max_scaler.transform(df.iloc[:,1:])

X = df.iloc[:, 1:].values
Y = df.iloc[:, 0].values

point = [[15.0, 2000.0]]
point = min_max_scaler.transform(point)

#Задаем значимость (важность) каждого признака
weights = [0.9, 0.1]

knn = KNeighborsClassifier(n_neighbors=1,
                           metric='euclidean',                           
                           #weights = weights,
                           n_jobs=-1).fit(X, Y)
print(knn.predict(point))

Каждый признак имеет свой вес. То есть какой-то признак важный, а какой-то менее. Нужно найти ближайшую точку с учетом заданных весов weights . У класса KNeighborsClassifier есть параметр weights, но похоже для другой логики. Скажите, как правильно написать, чтобы при поиске ближайшей точки учитывался вес каждого признака?
...
Рейтинг: 0 / 0
10.07.2021, 14:10
    #40083138
Ы2
Ы2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. В KNN учитывать вес каждого признака
ferzmikk, KNeighborsClassifier использует вес каждого соседа в зависимости от расстояния до него, а не признаков по отдельности.

Если вас интересует именно поиск ближайших, посмотрите NearestNeighbors .
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python. В KNN учитывать вес каждого признака / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]