KNeighborsRegressor를 사용하고 있습니다. 맞춤 거리 함수와 함께 사용하고 싶습니다.Sklearn KNeighborsRegressor 맞춤 거리 메트릭
knn_regression = KNeighborsRegressor(n_neighbors=15, metric=customDistance)
두 가지 기능을 실행하지만 결과는 좀 이상해됩니다 : 나는 또한 같은 KNeighborsRegressor 생성자에서 직접 customDistance를 호출 시도
week_day hour minute temp humidity
0 1 9 0 1
1 1 9 0 1
2 1 9 0 1
3 1 9 0 1
4 1 9 1 1
...
def customDistance(a, b):
print a, b
return np.sum((a-b)**2)
dt = DistanceMetric.get_metric("pyfunc", func=customDistance)
knn_regression = KNeighborsRegressor(n_neighbors=15, metric='pyfunc', metric_params={"func": customDistance})
knn_regression.fit(trainSetFeatures, trainSetResults)
: 내 훈련 세트처럼 보이는 팬더 DataFrame입니다. 우선, 내 DataFrame에서 함수를 입력 A와 B 행으로보고 기대하는 대신 그 중 내가 얻을 :
[0.87716989 11.46944914 1.00018801 1.10616031 1.] [ 1. 9. 0. 1. 1.]
두 번째 속성 B는 분명 내 훈련 집합에서 행,하지만 어디서 명확 수 없습니다 첫 번째 행이 왔습니까? 누군가가 언급 된 알고리즘에 맞춤 거리 함수를 올바르게 삽입 한 예를 설명하거나 게시 할 수 있다면 매우 높이 평가할 수 있습니다.
미리 감사드립니다.
안부, Klemen 대신 회귀 사용의 인수에 metric_params를 사용
처음에 다른 답변을 확인 함은 답장을 보내 주셔서 감사합니다 . 함수는 throw 된 오류없이 실행되었지만 벡터의 숫자는 정수 여야하지만 반올림됩니다. GitHub에서 이와 비슷한 문제가 발견되었습니다. https://github.com/scikit-learn/scikit-learn/issues/6287 이 문제가 발생했는지 모르겠으므로 패치를하고 문제를 해결해야합니다. 최신 0.18.1 Sklearn 빌드. –