擅长:python、mysql、java
<p>From<a href="http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html" rel="nofollow noreferrer">KNeighborsClassifier documentation</a>:<code>metric</code>参数必须是字符串或<a href="http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html" rel="nofollow noreferrer">DistanceMetric Object</a>,并且您给出了一个函数。在</p>
<p>为了传递自己的度量,必须指定:<code>metric='pyfunc'</code>并添加关键字参数<code>func=mydist2</code>。在</p>
<p>在<a href="https://stackoverflow.com/questions/21052509/sklearn-knn-usage-with-a-user-defined-metric">the similar question</a>:他们解释说,只有在设置了<code>algorithm='ball_tree'</code>并且保留了默认值“auto”时,才能使用自定义度量。在</p>
<p>我认为以下几点应该有效:</p>
<pre><code>neigh = KNeighborsClassifier(n_neighbors=3, algorithm='ball_tree',metric='pyfunc', func=mydist2)
</code></pre>
<p>当把gamma作为参数时,我会尝试:</p>
^{pr2}$
<p>并添加参数<code>metric_params={'gamma':2}</code></p>
<pre><code>neigh = KNeighborsClassifier(n_neighbors=3, algorithm='ball_tree',metric='pyfunc', func=mydist2, metric_params={'gamma':2} )
</code></pre>
<p>但我不确定,医生没有明确的例子。在</p>