栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

KNN分类算法python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

KNN分类算法python

#读取数据
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,:-1]],axis=0)
train_y = pd.concat([t0.iloc[:18,-1], t1.iloc[:18,-1]],axis=0)
test_X = pd.concat([t0.iloc[18:,:-1], t1.iloc[18:,:-1]],axis=0)
test_y = pd.concat([t0.iloc[18:,-1], t1.iloc[18:,-1]],axis=0)
knn = KNN (k=4)
knn.fit(train_X, train_y)
result = knn.predict(test_X)
print (np.sum(result == test_y))
print (np.sum(result == test_y)/ len(result))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号