首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么KNN在使用自定义度量时比较慢?

为什么KNN在使用自定义度量时比较慢?
EN

Stack Overflow用户
提问于 2016-10-27 06:26:43
回答 2查看 3.2K关注 0票数 2

我使用的数据集包含大约200k个对象。每个对象都有4个特征。我用欧氏度量对它们进行K近邻(KNN)分类。过程在大约20秒内完成。

最近,我有理由使用自定义度量。可能会有更好的结果。我已经实现了自定义度量,并且KNN已经工作了一个多小时。我没等它完成。

我认为这个问题的一个原因是我的标准。我用return 1替换我的代码。KNN还工作了一个多小时。我假设一个原因是算法Ball Tree,但是KNN与它和欧几里得度量在大约20秒内工作。

现在我不知道是怎么回事。我使用Python 3和sklearn 0.17.1。这里进程不能用自定义度量完成。我也尝试了算法brute,但它有同样的效果。升级和降级的科学知识-学习没有任何影响。在Python 2上通过自定义度量实现分类也没有积极的效果。我在Cython上实现了这个度量(只返回1),它具有相同的效果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def custom_metric(x: np.ndarray, y: np.ndarray) -> float:
    return 1

clf = KNeighborsClassifier(n_jobs=1, metric=custom_metric)
clf.fit(X, Y)

我能用自定义度量来提升KNN的分类过程吗?

如果我的英语不清楚,很抱歉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-05 07:04:06

Sklearn进行了优化,并使用cython和几个进程尽可能快地运行。编写纯python代码--特别是当它被多次调用时--是减慢代码速度的原因。我建议您使用cython编写自定义度量。您可以在这里学习一个教程:https://blog.sicara.com/https-medium-com-redaboumahdi-speed-sklearn-algorithms-custom-metrics-using-cython-de92e5a325c

票数 4
EN

Stack Overflow用户

发布于 2017-07-18 02:58:30

正如@Réda Boumahdi正确指出的那样,原因是使用python中定义的自定义度量。这是这里讨论的一个已知问题。在讨论结束时,它以“惯用修正”的形式结束。因此,建议的唯一解决方案是在cython中编写自定义度量,以避免在使用python度量时减缓GIL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40287236

复制
相关文章
发送电子邮件
在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。
用户8442333
2021/05/20
2.3K0
java实现邮件发送功能_电子邮件是啥
public static void main(String[] args) throws IOException {
全栈程序员站长
2022/11/01
1.1K0
Spring发送电子邮件
Spring基于javax.mail封装了一套用于发送电子邮件的API,位于org.springframework.mail包下,下面将介绍下发送普通文本邮件和基于thymeleaf模版的邮件。
布禾
2020/10/29
1.8K0
Spring发送电子邮件
QQ授权,接收代码发送的电子邮件
1.代码(两处修改自己的QQ+授权码),授权码开启权限后获取 package com.itqf.Utils; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.net.Inet4Address; import java.util.Properties;
2020/10/23
1.6K0
QQ授权,接收代码发送的电子邮件
Spring Boot发送电子邮件
通过使用Spring Boot RESTful Web服务,可以发送包含Gmail传输层安全性的电子邮件。在本章中,详细了解如何使用此功能。
黑洞代码
2021/10/14
1.4K0
PHP发送电子邮件代码
注意:PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数可用。所用的程序通过在 php.ini 文件中的配置设置进行定义。
用户1503405
2021/09/27
1.8K0
使用 PHP发送电子邮件
PHP 运行邮件函数需要一个已安装且正在运行的邮件系统(如:sendmail、postfix、qmail等)。所用的程序通过在 php.ini 文件中的配置设置进行定义。
小颖club
2022/04/11
2.5K0
利用Python自动发送电子邮件
收发邮件几乎是每个人每天都需要做的一件事情,对于一些固定每天需要发送的邮件或者是同时需要发送好几十好几百份的时候,我们可以考虑借助Python来自动发送邮件。
张俊红
2019/03/06
1.4K0
利用Python自动发送电子邮件
python3 发送电子邮件
使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!
py3study
2020/01/03
8710
PHP 使用 phpmailer 发送电子邮件
phpMailer 是一个非常强大的 ph p发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
OwenZhang
2021/12/08
2.1K0
PHP 使用 phpmailer 发送电子邮件
Python批量下载电子邮件附件并汇总合并Excel文件
首先,通过查阅资料,了解电子邮件和Excel文件的结构,确定要用到的标准库和扩展库,并进行导入:
Python小屋屋主
2019/12/17
9830
Python批量下载电子邮件附件并汇总合并Excel文件
Kindle 怎么使用电子邮件附件推送电子书到设备中?
之前买过 PHP 的书看,结果也没看到了几本,一是书都在家里,没给公司带,二是下班晚回去不想看了
沈唁
2018/10/26
3.2K0
Kindle 怎么使用电子邮件附件推送电子书到设备中?
Python: 通过QQ邮箱发送电子邮件
文章背景:自学Python编程快速上手中关于发送电子邮件的章节。本文讲述如何通过Python,使用QQ邮箱发送电子邮件。
Exploring
2022/09/20
3.2K0
Python: 通过QQ邮箱发送电子邮件
使用Python发送自定义电子邮件
电子邮件仍然是事实。 尽管存在各种弊端,但它仍然是向大多数人发送信息的最佳方法,特别是允许邮件排队等待收件人的自动方式。
用户7886150
2021/01/28
2.9K0
.NET Core 使用MailKit发送电子邮件
发送邮件通知的功能在各种系统里都很常见。我的博客也能在有新评论、新回复,或者文章被其他网站引用时向管理员发送邮件。那么在.NET Core里,如何实现发送电子邮件呢?
Edi Wang
2019/07/08
6K0
.NET Core 使用MailKit发送电子邮件
Spring Boot – 通过 SMTP 发送电子邮件
Spring Boot提供了使用JavaMail库通过 SMTP 发送电子邮件的功能。在这里,我们将说明开发可用于发送带或不带附件的电子邮件的 Restful Web 服务的分步指南。为了开始执行这些步骤,我们首先使用 Spring Initializer 创建一个 Spring Boot 项目。
用户1418987
2023/10/26
5520
Spring Boot – 通过 SMTP 发送电子邮件
Python+flask+flask-email发送带附件的电子邮件
运行下面的程序之前,需要使用pip install flask-mail安装电子邮件扩展包。 import os.path from flask import Flask from flask.ext.mail import Mail, Message app = Flask(__name__) #以126免费邮箱为例 app.config['MAIL_SERVER'] = 'smtp.126.com' app.config['MAIL_PORT'] = 25 app.config['MAIL_USE_TL
Python小屋屋主
2018/04/17
2.6K0
使用Python实现电子邮件群发功能
在某些应用中,可能会需要由管理员给所有用法群发电子邮件,或者类似的应用。本文代码使用Python详细模拟了这个过程。 import email from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.base import MIMEBase import smtplib sender =
Python小屋屋主
2018/04/16
2.2K0
2023年度电子邮件安全报告
概述 2022年,网络安全威胁呈指数级增长,其中绝大多数涉及网络钓鱼也就不足为奇了。随着威胁的频率、强度和复杂性的增加,对快速和可操作性情报的需求也达到前所未有的高度。 Cofense Intelligence研究发现恶意钓鱼电子邮件增加了569%,与证书/凭据钓鱼相关的活跃威胁报告增加了478%,恶意软件增加了44%。基于这些数据,Cofense得出结论,凭据网络钓鱼是2022年的首要网络威胁。 【图1:活跃威胁报告中的顶级主题】 如上图所示,在活跃威胁报告中,占比最大的主题是金融(37%),紧随其
FB客服
2023/04/18
1.1K0
2023年度电子邮件安全报告
点击加载更多

相似问题

发送带有电子邮件附件的电子邮件

40

在SpringBoot中以电子邮件附件的形式发送生成的报告

17

以.csv电子邮件附件的形式发送数据

10

Jenkins Cucumber报告作为电子邮件附件发送

13

Jenkins -带有动态html报告文件的电子邮件附件

115
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文