KNN分类算法python

该博客展示了如何运用KNN(K-Nearest Neighbors)算法对数据集'KNN分类预测疲劳.csv'进行预处理和模型训练。通过将预处理后的数据分为训练集和测试集,用KNN模型进行分类预测,并计算预测结果与实际结果的匹配度,最后输出了准确率。
摘要由CSDN通过智能技术生成

#读取数据
data = pd.read_csv("C:/Users/lumou/Desktop/传感器/0二稿/data/KNN分类预测疲劳.csv",header=0)

data["pilao"] = data ["pilao"].map({"pre":0,"dimian":1})

class KNN:
    def __init__(self, k):
        self.k = k
    def fit(self, X, y):
        self.X = np.asarray(X)
        self.y = np.asarray(y)
    def predict(self, X):
        X = np.asarray(X)
        result = []
        for x in X:
            dis = np.sqrt(np.sum((x - self.X) ** 2, axis=1))
            index = dis.argsort()
            index = index[:self.k]
            count = np.bincount(self.y[index],weight=1/dis[index])
            result.append(count.argmax())
        return np.asarray(result)
    
t0 = data[data["pilao"] == 0]
t1 = data[data["pilao"] == 1]
t0 = t0.sample(len(t0), random_state=0)
t1 = t1.sample(len(t1))
train_X = pd.concat([t0.iloc[:18,:-1], t1.iloc[:18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值