python与机器学习(一.K-邻近算法)

什么是机器学习:

利用计算机从历史数据中找出规律,并把这些规律用到对未来不确定场景的决策。

算法分类:

有监督学习:在训练数据中已经明确给出了数据的类型,例如分类算法。

无监督学习:与无监督学习相反,例如聚类算法。

半监督学习:

K-近邻算法(KNN):

存在一个样本数据集合(也称作训练样本集),并且每个数据都存在标签,即我们知道样本集中每一数据与所属分类都对应关系。输入没有标签都新数据后,将新数据都每个特征与样本集中数据对应都特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。

以下是一个最简单的KNN算法的实现,帮助理解KNN在python中的实现:

python与机器学习(一.K-邻近算法)_第1张图片
KNN算法的实现

下面是一个将文本数据转换为训练矩阵的例子:

以下是数据源文件datingTestSet.txt:

python与机器学习(一.K-邻近算法)_第2张图片
数据源文件datingTestSet.txt

文本转换为数据的实现函数

python与机器学习(一.K-邻近算法)_第3张图片
实现

使用Matplotlib创建散点图

python与机器学习(一.K-邻近算法)_第4张图片
创建散点图
python与机器学习(一.K-邻近算法)_第5张图片
实现效果

当然,这样统计还是有一个问题,不同维度的数值单位不一样,我们需要通过归一化处理使特征值的取值转化为0到1区间内的值:

newValue = (oldValue - min)/(max - min)

注:这个公式中,min 和max分别是数据集中的特征最小值和特征最大值,为了完成这一目标,我们将新定义一个函数

python与机器学习(一.K-邻近算法)_第6张图片
归一化

你可能感兴趣的:(python与机器学习(一.K-邻近算法))