什么是机器学习:
利用计算机从历史数据中找出规律,并把这些规律用到对未来不确定场景的决策。
算法分类:
有监督学习:在训练数据中已经明确给出了数据的类型,例如分类算法。
无监督学习:与无监督学习相反,例如聚类算法。
半监督学习:
K-近邻算法(KNN):
存在一个样本数据集合(也称作训练样本集),并且每个数据都存在标签,即我们知道样本集中每一数据与所属分类都对应关系。输入没有标签都新数据后,将新数据都每个特征与样本集中数据对应都特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。
以下是一个最简单的KNN算法的实现,帮助理解KNN在python中的实现:
下面是一个将文本数据转换为训练矩阵的例子:
以下是数据源文件datingTestSet.txt:
文本转换为数据的实现函数
使用Matplotlib创建散点图
当然,这样统计还是有一个问题,不同维度的数值单位不一样,我们需要通过归一化处理使特征值的取值转化为0到1区间内的值:
newValue = (oldValue - min)/(max - min)
注:这个公式中,min 和max分别是数据集中的特征最小值和特征最大值,为了完成这一目标,我们将新定义一个函数