机器学习(一)

机器学习算法KNN

初学机器学习

对KNN算法进行封装

代码内容

代码如下(示例):封装

import numpy as np
from math import sqrt
from collections import Counter
class KNNClassifier:
    def __init__(self,k):
        #初始化KNN分类器
        assert  k>=1,'k must be valid'
        self.k=k
        self._X_train=None
        self._Y_train=None
    def fit(self,X_train,Y_train):
       # 根据训练数据集
        assert X_train.shape[0] == Y_train.shape[0], '保证训练样本与标签数目相等'
        assert self.k<= X_train.shape[0], '保证维度相等'
        self._X_train=X_train
        self._Y_train=Y_train
        return self
    def predict(self,X_predict):
        assert self._X_train is not None and self._Y_train is not None,\
        '预测数据不能是空'
        assert X_predict.shape[1]==self._X_train.shape[1],'预测数据维度必须与数据维度相等'

        y_predict=[self._predict(x)   for x in X_predict]
        return np.array(y_predict)
    def _predict(self,x):
        assert x.shape[0]==self._X_train.shape[1],'保证维度相等'
        distances = [sqrt(np.sum((x_train - x) ** 2)) for x_train in self._X_train]
        nearst = np.argsort(distances)
        top_Y = [self._Y_train[i] for i in nearst[:self.k]]
        votes = Counter(top_Y)
        return votes.most_common(1)[0][0]

2.调用

代码如下(示例):

kNN_classifier=KNNClassifier(k=6)#传入K值
kNN_classifier.fit(X_train,Y_train)#训练集和标签
y_predict=kNN_classifier.predict(x_pedict)#预测
y_predict

该处使用的url网络请求的数据。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值