我是人工智能的新手.我理解K最近邻算法以及如何实现它.但是,你如何计算不规模的东西的距离或重量?
例如,可以很容易地计算年龄距离,但是如何计算红色到蓝色的距离?也许颜色是一个不好的例子,因为你仍然可以说使用频率.比如汉堡比萨饼到炸薯条怎么样?
我觉得有一种聪明的方法可以做到这一点.
提前感谢您的关注.
编辑:谢谢大家非常好的答案.它真的有帮助,我很感激.但我认为必须有一条出路.
我可以这样做吗?假设我正在使用我的KNN算法对一个人进行预测,看他/她是否会在我的餐厅吃饭,该餐厅供应上述三种食物.当然,还有其他因素,但为了保持简单,对于喜爱的食物领域,300人,150喜欢汉堡,100喜欢披萨,50喜欢薯条.常识告诉我,最喜欢的食物影响人们决定是否进食.
因此,现在一个人将他/她最喜欢的食物作为汉堡进入,我将预测他/她是否会在我的餐厅吃饭.忽略其他因素,并且基于我的(训练)先前的知识库,常识告诉我,与他进入披萨或薯条相比,这个特定领域最喜欢的食物的k个最近邻居的距离更接近.
唯一的问题是我使用概率,我可能是错的,因为我不知道,可能无法计算实际距离.我也担心这个领域对我的预测投入太多/太少的重量,因为距离可能不是与其他因素(价格,一天中的时间,餐厅是否已满,我可以轻易量化等)的比例.但我我想我可以用一些参数调整来解决它.
哦,每个人都提出了一个很好的答案,但我只能接受一个.在那种情况下,我明天会接受票数最高的那个.再次感谢大家.
将您收集数据的所有食物表示为"维度"(或表格中的列).
为每个可以收集数据的人记录"喜欢",并将结果放在表格中:
Burger | Pizza | Fries | Burritos | Likes my food person1 1 | 0 | 1 | 1 | 1 person2 0 | 0 | 1 | 0 | 0 person3 1 | 1 | 0 | 1 | 1 person4 0 | 1 | 1 | 1 | 0
现在,给一个新人,有关他喜欢的一些食物的信息,你可以使用一个简单的措施测量与其他人的相似性,例如Pearson Correlation Coefficient,或Cosine Similarity等.
现在你有办法找到K最近的邻居并做出一些决定..
有关此问题的更多高级信息,请查看"协作过滤"(但我会警告您,它会得到数学).
嗯,"最近"意味着你有一些衡量标准可以或多或少地"遥远"."汉堡","披萨"和"薯条"的量化并不是一个KNN问题,而是基本系统建模.如果您有一个系统,您正在进行分析,其中'汉堡','披萨'和'薯条'是术语,系统存在的原因将决定它们如何量化 - 如果你是试图找出如何获得最佳品味和最少的卡路里,然后ta-da,你知道你的指标是什么.(当然,"最佳品味"是主观的,但这是另一组问题.)
这些术语不具备固有的可量化性,从而告诉您如何设计分析系统; 由您来决定您要完成的工作并从那里设计指标.
这是AI中知识表示的问题之一.主观上扮演着重要角色.例如,您和我是否同意汉堡,比萨饼和薯条的"亲密度"?
您可能需要一个包含要比较的项目的查找矩阵.如果你可以假设传递性,你可以减少这个矩阵,但我认为即使你的例子也不确定.
关键可能是尝试确定您要比较的功能.例如,如果您正在比较健康食品,您可能会得到更客观的东西.