为了账号安全,请及时绑定邮箱和手机立即绑定

在python的数据集中应用k-最近邻

在python的数据集中应用k-最近邻

叮当猫咪 2021-12-21 15:57:57
我在 CSV 文件中有一个数据集,所有数据都是数字属性,我想在我的数据集中应用 k-最近邻我的代码中有一些错误,我不知道谁能修复它。
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

import numpy as np


class knn:


    def __init__ (self, x, y, k):

        self.k = k

        self.x_data = x 

        self.y_data = y


    def predict(self, test):

        dist = np.sqrt(np.sum((self.x_data-test)**2,axis=1))

        closest = np.argpartition(dist, self.k)[0:self.k]

        a,b = np.unique(self.y_data[closest],return_counts=True)

        return a[np.where(b == b.max())]

x:特征,y:标签,k:邻居数量


我希望这可以帮助你!


查看完整回答
反对 回复 2021-12-21
?
智慧大石

TA贡献1946条经验 获得超3个赞

好像instance1[x]instance2[x]你申请的减法是一种string类型。你不能减去 2 个字符串,所以你可以修改你的代码,比如,

distance += pow( ( int(instance1[x])-int(instance2[x]) ),2)

这会将变量读取为int类型,因此您可以减去它。

你也可以intfloat double等代替


查看完整回答
反对 回复 2021-12-21
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

替换限定变量的行sortedVotes

sortedVotes = sorted ( classVotes.items(), key=operator.itemgetter ( 1 ), reverse=True )


查看完整回答
反对 回复 2021-12-21
  • 3 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信