由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
DataSciences版 - python sklearn nearest neighbor user defined metric
相关主题
怎样能才能快速的找到KNN急,跪求答案 (moving avg using spark dataframe window functions)
Optimization over more than one metrics求问一个概率题
问个R的问题how to reduce 10 data points to 8 proportionally
如何理解 curse of dimensionality一个 senior data scientist 的面试题。
怎么计算距离比较好?工作中的统计/machine learning问题求助:用什么metric比较两个string的相关性?
Science上新clustering算法的分析测试[Data Science Project] Location data quality
如何用不同来源的Obs来fit 一个 Dist.分享一个Data Scientist的面经攒RP。。 (转载)
【包子求】BFGS-Matlab packageNeed senior data analyst - Seattle (转载)
相关话题的讨论汇总
话题: metric话题: pyfunc话题: func话题: sklearn话题: distance
进入DataSciences版参与讨论
1 (共1页)
s****i
发帖数: 197
1
请问python sklearn nearest neighbor user defined metric具体语句该怎样写的??
像是
nbrs = NearestNeighbors(n_neighbors=4,algorithm='auto',metric='pyfunc').fit(
B)
distances, indices = nbrs.kneighbors(B)
这样?但是这个会给我一个error
ValueError: Unknown Distance Metric: pyfunc
但是从sklearn的document上看这东西应该是支持自定义distance的阿??
我知道这个问题真的很2大家b4我把。。。
===============================================
其实就一关键字。。。
nbrs = NearestNeighbors(n_neighbors=4, algorithm='ball_tree',metric='pyfunc'
,func=mydist).fit(A)
distances, indices = nbrs.kneighbors(A)
原来会有error完全是因为只有algorithm='ball_tree'支持 其他kd_tree brute都
不支持
s****i
发帖数: 197
2
真的没有人知道吗??可是它的document上写了是支持的阿 github上源代码也没有查
到阿???
http://scikit-learn.org/stable/modules/generated/sklearn.neighb
http://scikit-learn.org/stable/modules/generated/sklearn.neighb
c***z
发帖数: 6348
3
maybe check up or ask at www.stackoverflow.com?
s****i
发帖数: 197
4
check 了已经 结果所有都回答不支持 但是那是几个月前的回答现在document上说支持
了就应该已经更新版本变支持了吧。。。。我猜。。。。
c***z
发帖数: 6348
5
。。。。我猜。。。。
I think you need to guess again then :P
l*******m
发帖数: 1096
6
I think your distance function was defined in a wrong way. Here is an
example
def test_pyfunc_metric():
def dist_func(x1, x2, p):
return np.sum((x1 - x2) ** p) ** (1. / p)
X = np.random.random((10, 3))
euclidean = DistanceMetric.get_metric("euclidean")
pyfunc = DistanceMetric.get_metric("pyfunc", func=dist_func, p=2)
D1 = euclidean.pairwise(X)
D2 = pyfunc.pairwise(X)
assert_array_almost_equal(D1, D2)
I didn't know it before, just checked source codes for you.
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/neighbors/
tests/test_dist_metrics.py
There is a defination
cdef class PyFuncDistance(DistanceMetric):
"""PyFunc Distance
A user-defined distance
Parameters
----------
func : function
func should take two numpy arrays as input, and return a distance.
"""
def __init__(self, func, **kwargs):
self.func = func
x = np.random.random(10)
try:
d = self.func(x, x, **kwargs)
except TypeError:
raise ValueError("func must be a callable taking two arrays")
try:
d = float(d)
except TypeError:
raise ValueError("func must return a float")
self.kwargs = kwargs
cdef inline DTYPE_t dist(self, DTYPE_t* x1, DTYPE_t* x2,
ITYPE_t size) except -1:
cdef np.ndarray x1arr = _buffer_to_ndarray(x1, size)
cdef np.ndarray x2arr = _buffer_to_ndarray(x2, size)
return self.func(x1arr, x2arr, **self.kwargs)

【在 s****i 的大作中提到】
: check 了已经 结果所有都回答不支持 但是那是几个月前的回答现在document上说支持
: 了就应该已经更新版本变支持了吧。。。。我猜。。。。

1 (共1页)
进入DataSciences版参与讨论
相关主题
Need senior data analyst - Seattle (转载)怎么计算距离比较好?
求问一道关于NLP的面试题Science上新clustering算法的分析测试
maximal information coefficient 问题如何用不同来源的Obs来fit 一个 Dist.
Facebook DS onsite 求建议!顺便发个phone interview question攒人品【包子求】BFGS-Matlab package
怎样能才能快速的找到KNN急,跪求答案 (moving avg using spark dataframe window functions)
Optimization over more than one metrics求问一个概率题
问个R的问题how to reduce 10 data points to 8 proportionally
如何理解 curse of dimensionality一个 senior data scientist 的面试题。
相关话题的讨论汇总
话题: metric话题: pyfunc话题: func话题: sklearn话题: distance