西瓜书 习题10.1 KNN

本文介绍了K-Nearest Neighbor(KNN)算法的实现,强调其懒惰学习特性,通过调整K值或特征权重进行模型优化。同时探讨了PCA主成分分析在降维中的作用,指出PCA通过保留高方差特征降低维度,提高样本采样密度并有助于去除噪声。
摘要由CSDN通过智能技术生成

代码和数据:https://github.com/qdbszsj/KNN

这里编程实现了一下KNN,K-Nearest Neighbor。

KNN的好处是可以“懒惰学习”,只要存好数据,来一个测一个,调整一下K就好,或者是把每个维度的权值调整一下,意思就是在距离上做点文章。

然后这一章里的PCA(principal component analysis),主成分分析,是一种降维方法,说白了就是挑一些方差比较大的特征值出来,把那些影响不大的特征值忽略掉,这样做有俩好处:1.舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机。2.当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,舍弃这些特征在一定程度上能去噪

import numpy as np
import pandas as pd
dataset=pd.read_csv('/home/parker/watermelonData/watermelon3_0a.csv', delimiter=",")
data=dataset.values
X=data[:,1:3]
y=data[:,-1]

import random
def KNNone(x,iX,iY,K):
    m,n=np.shape(iX)
    dist = (iX - x) ** 2
    for j in range(m):
        dist[j, 0] = sum(dist[j])
        dist[j, 1] = j
    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值