Wineprice()一瓶酒的价格
Winset1()构建一批酒的价格
Euclidean(v1,v2)v1,v2的欧几里得距离
Data=numpredict。Winset1()
Getdistance(data,v1)与v1的距离,按序排列了
Knnestimate(data,vec1,k=5),返回与v1距离最近的data中k个点的平均距离
Gaussian(dist,sigma=10)高斯权重函数
Weightknn(data,vec1,k=5,weightf=gaussian)返回与vec1距离最近k个点的加权距离,距离越近,影响越大
Dividedata(data,test=0.05),将data分为训练集和测试集并返回,测试集占0.05
Testalgorithm(algf,trainset,testset)//algf接受是哪个算法,knnestimate?weightknn?返回测试的误差率
Crossvalidate(algf,data,trials=100,test=0.05)//有trials组划分,对每一组划分求误差率,最后对trials划分误差求平均值
Def knn3(d,v):return knnestimate(d,v,k=3)、、不同的k调整knnestimate。
Wineset2()加上一些其他的变量影响酒的价格,rating,age,aisle,bottlesize
Rescale(data,scale)将各个参数归一化,将data中的数据乘以各个scale【i】
Wineset3()//构建一个有的具有打折的酒的价格的数据集//导致不对称分布
Probguess(data,vec1,low,high,k=5,weightf=guassian),近邻点的价格是否落在low与high之间,是的话加入权重得n’weight,所有权重之和为tweight,返回nweight/tweight相除的结果
绘制概率分布需要下载matplotlib,在http://matplotlib.sourceforge.net处下载
Cumulativegraph(data,vect1,high,k=5,weightf=gaussian)//这种绘制的是累积概率
概率分布:每个价位点的概率等于其周边概率的一个加权平均
Probalilitygraph(data,vect1,high,靠,weightf=gaussian,ss=5.0)