优化 项目实例的规范

This commit is contained in:
jiangzhonglian
2017-08-17 23:18:38 +08:00
parent 16f7f6c842
commit bd9612ab5b

View File

@@ -53,11 +53,11 @@ knn 算法按照距离最近的三部电影的类型,决定未知电影的类
适用数据范围:数值型和标称型
```
## KNN 项目实战
## KNN 项目案例
### 项目实战1: 优化约会网站的配对效果
### 项目案例1: 优化约会网站的配对效果
> 概述
#### 项目概述
海伦使用约会网站寻找约会对象。经过一段时间之后,她发现曾交往过三种类型的人:
* 不喜欢的人
@@ -71,13 +71,7 @@ knn 算法按照距离最近的三部电影的类型,决定未知电影的类
现在她收集到了一些约会网站未曾记录的数据信息,这更有助于匹配对象的归类。
海伦把这些约会对象的数据存放在文本文件 [datingTestSet2.txt](https://github.com/apachecn/MachineLearning/blob/master/input/2.KNN/datingTestSet2.txt) 中,总共有 1000 行。海伦约会的对象主要包含以下 3 种特征:
* 每年获得的飞行常客里程数
* 玩视频游戏所耗时间百分比
* 每周消费的冰淇淋公升数
> 使用 KNN 改进约会网站的配对效果
#### 开发流程
```
收集数据:提供文本文件
@@ -90,7 +84,15 @@ knn 算法按照距离最近的三部电影的类型,决定未知电影的类
使用算法:产生简单的命令行程序,然后海伦可以输入一些特征数据以判断对方是否为自己喜欢的类型。
```
* 将文本记录转换为 NumPy 的解析程序:
> 收集数据:提供文本文件
海伦把这些约会对象的数据存放在文本文件 [datingTestSet2.txt](https://github.com/apachecn/MachineLearning/blob/master/input/2.KNN/datingTestSet2.txt) 中,总共有 1000 行。海伦约会的对象主要包含以下 3 种特征:
* 每年获得的飞行常客里程数
* 玩视频游戏所耗时间百分比
* 每周消费的冰淇淋公升数
> 准备数据:使用 Python 解析文本文件
```Python
def file2matrix(filename):
@@ -109,7 +111,7 @@ def file2matrix(filename):
return returnMat,classLabelVector
```
* 使用 Matplotlib 创建散点图
> 分析数据:使用 Matplotlib 画二维散点图
```Python
import matplotlib
@@ -120,13 +122,22 @@ ax.scatter(datingDataMat[:, 1], datingDataMat[:, 2])
plt.show()
```
> 训练算法:此步骤不适用于 k-近邻算法
> 测试算法:使用海伦提供的部分数据作为测试样本。
测试样本和非测试样本的区别在于:
测试样本是已经完成分类的数据,如果预测分类与实际类别不同,则标记为一个错误。
> 使用算法:产生简单的命令行程序,然后海伦可以输入一些特征数据以判断对方是否为自己喜欢的类型。
[完整代码地址](https://github.com/apachecn/MachineLearning/blob/master/src/python/2.KNN/kNN.py): <https://github.com/apachecn/MachineLearning/blob/master/src/python/2.KNN/kNN.py>
> 优化点
#### 要点补充
归一化是一个让权重变为统一的过程,更多细节请参考: https://www.zhihu.com/question/19951858
### 项目实战2: 手写数字识别系统
### 项目案例2: 手写数字识别系统
> 概述