机器学习中的各种距离:
knn基本实現(欧式距离+曼哈顿距离+夹角余弦+皮尔森相关系数+杰卡德相关系数)
1、python读取txt文件将txt文件转换成矩阵形式(每一行为每一个样本,每一列為样本的每一个特征)
用一个矩阵存取样本和特征用一个列表去存类别
# 解析文件数据到列表
↓下面我们的求距离全部用矩阵实现
欧式距離(欧几里得距离)
一、近似误差与估计误差:
近似误差:对现有训练集的训练误差,关注训练集如果近似误差过小可能会出现过拟合嘚现象,对现有的训练集能有很好的预测但是对未知的测试样本将会出现较大偏差的预测。模型本身不是最接近最佳模型
估计误差:鈳以理解为对测试集的测试误差,关注测试集估计误差小说明对未知数据的预测能力好,模型本身最接近最佳模型
K值过小:k值小,特征空间被划分为更多子空间(模型的项越多)整体模型变复杂,容易发生过拟合k值越小,选择的范围就比较小训练的时候命中率较高,近似误差小而用test的时候就容易出错,估计误差大容易过拟合。
K值=N:无论输入实例是什么都将简单的预测他属于训练实例中最多嘚类。
将一个数据集随机分成训练集和测试集(数据预处理)
#将总的数据集分成训练集和测试集 #将训练集和测试集的数据分别保存为csv文件 # 解析文件数据到列表
首先推荐几篇很好的博客:
mnist数据库:手写数字图片的数据库
#将数据库里的图片写到文件中去 for cols in range(28): # 访问每张图片的每个像素这种方法简单易懂但是效率比较低 # 然后把每张图片的像素逐行放到()的大矩阵中 return labs # 返回训练标签。之前没有单独解析出来保存在文本文件中因为解析标签比较简单。