├── 1.机器学习基础
├── 1.1 认识机器学习中的数据
│ ├── 1.1 认识机器学习中的数据.md
│ ├── screenshot
│ │ ├── 127313-6ee7f73fd968d278.png
│ │ ├── QQ截图20180725205546.png
│ │ ├── QQ截图20180725221256.png
│ │ └── QQ截图20181106220953_副本.png
│ └── 线性代数 矩阵.md
├── 1.2 机器学习的主要任务
│ ├── 1.2 机器学习的主要任务.md
│ └── screenshot
│ │ ├── QQ截图20180728195902.png
│ │ ├── QQ截图20181106222409_副本.png
│ │ └── QQ截图20181106222752_副本.png
└── 1.3 机器学习算法的几大分类
│ ├── 1.3 机器学习算法的几大分类.md
│ └── screenshot
│ ├── QQ截图20180728201449_副本.png
│ ├── QQ截图20180905214010_副本.png
│ ├── QQ截图20181106224120_副本.png
│ └── timg.jpg
├── 2.机器学习相关工具安装与使用
├── 2.1 Python3的安装
│ ├── 2.1 Python3的安装.md
│ └── screenshot
│ │ ├── QQ截图20180904233717.png
│ │ └── QQ截图20180904235947.png
├── 2.2 相关IDE的安装与使用
│ ├── 2.2 相关IDE的安装与使用.md
│ └── screenshot
│ │ ├── QQ截图20180905000934_副本.png
│ │ ├── QQ截图20180905002137_副本.png
│ │ ├── QQ截图20180905102714.png
│ │ ├── QQ截图20180905233038_副本.png
│ │ └── QQ截图20180905235640_副本.png
├── 2.3 Numpy的基本使用(一)
│ ├── 2.3 Numpy的基本使用(一).md
│ └── screenshot
│ │ ├── QQ截图20180906230656_副本.png
│ │ ├── QQ截图20180906230746_副本.png
│ │ ├── QQ截图20180906230850_副本.png
│ │ ├── QQ截图20180906230910_副本.png
│ │ ├── QQ截图20180906230921_副本.png
│ │ ├── QQ截图20180909230554_副本.png
│ │ ├── QQ截图20180909230611_副本.png
│ │ ├── QQ截图20180909230645_副本.png
│ │ ├── QQ截图20180909230708_副本.png
│ │ └── QQ截图20180909230729_副本.png
├── 2.4 Numpy的基本使用(二)
│ ├── 2.4 Numpy的基本使用(二).md
│ └── screenshot
│ │ ├── 10_副本.png
│ │ ├── 11_副本.png
│ │ ├── 12_副本.png
│ │ ├── 13_副本.png
│ │ ├── 14_副本.png
│ │ ├── 15_副本.png
│ │ ├── 16_副本.png
│ │ ├── 1_副本.png
│ │ ├── 2_副本.png
│ │ ├── 3_副本.png
│ │ ├── 4_副本.png
│ │ ├── 5_副本.png
│ │ ├── 6_副本.png
│ │ ├── 7_副本.png
│ │ ├── 8_副本.png
│ │ └── 9_副本.png
├── 2.5 Numpy的基本使用(三)
│ ├── 2.5 Numpy的基本使用(三).md
│ └── screenshot
│ │ ├── 10_副本.png
│ │ ├── 11_副本.png
│ │ ├── 12_副本.png
│ │ ├── 1_副本.png
│ │ ├── 2_副本.png
│ │ ├── 3_副本.png
│ │ ├── 4_副本.png
│ │ ├── 5_副本.png
│ │ ├── 6_副本.png
│ │ ├── 7_副本.png
│ │ ├── 8_副本.png
│ │ └── 9_副本.png
├── 2.6 Matplotlib的基本使用
│ ├── 2.6 Matplotlib的基本使用.md
│ └── screenshot
│ │ ├── 1.png
│ │ ├── 11.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ ├── 9.png
│ │ ├── QQ截图20181107125938_副本.png
│ │ ├── QQ截图20181107130124_副本.png
│ │ ├── QQ截图20181107130142_副本.png
│ │ └── QQ截图20181108195151_副本.png
└── 2.7 Scikit-learn的简单探索
│ ├── 2.7 Scikit-learn的简单探索.md
│ └── screenshot
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ └── QQ截图20181107130015_副本.png
├── 3.KNN
├── 3.1 KNN算法原理与简单实现
│ ├── 3.1 KNN算法原理与简单实现.md
│ └── screenshot
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
├── 3.2 Scikit-learn中KNN算法的封装
│ ├── 3.2 Scikit-learn中KNN算法的封装.md
│ ├── kNN.py
│ ├── kNNClassifier.py
│ └── screenshot
│ │ ├── WX20190718-205950@2x.png
│ │ ├── WX20190723-143401@2x.png
│ │ ├── WX20190723-143643@2x.png
│ │ ├── WX20190723-155643@2x.png
│ │ └── WX20190723-203849@2x.png
└── 3.3 如何判断算法的好坏与性能
│ └── 3.3 如何判断算法的好坏与性能.md
├── README.md
├── screenshot
└── QQ截图20180725235425.png
└── 简介 什么是机器学习
├── screenshot
├── QQ截图20180728195850.png
├── QQ截图20180728201445.png
└── QQ截图20181106202946_副本.png
└── 简介 什么是机器学习.md
/1.机器学习基础/1.1 认识机器学习中的数据/1.1 认识机器学习中的数据.md:
--------------------------------------------------------------------------------
1 | # 1.1 认识机器学习中的数据
2 |
3 | ### IRIS(鸢yuan尾花)数据集
4 |
5 | > Iris(鸢尾花卉)数据集是非常著名且常用的分类实验数据集,由Fisher, 1936收集整理。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
6 |
7 | 该数据集包含了5个属性:Sepal.Length(花萼长度);Sepal.Width(花萼宽度);Petal.Length(花瓣长度);Petal.Width(花瓣宽度);
8 | 种类:Setosa(山鸢尾)、Versicolour(杂色鸢尾),以及Virginica(维吉尼亚鸢尾)
9 |
10 | - 下面表中用0、1、2代表三个种类,计算机中对数据处理,我们先学会采取数字化
11 |
12 | ### 数据
13 |
14 | 
15 |
16 | 
17 |
18 | - 为可视化方便,我们只选取前两种花的前两个特征绘制出的其各个样本在平面二维图中的分布,即所有样本的两个特征组成了该特征空间,如下图所示
19 |
20 |
21 |
22 | - 举一反三:选取3个特征即可在3维空间中表示,n个特征即可在n维空间表示
23 | - 由上图我们可以清晰地看到每种花的特征在特征空间中的分布是不同的,我们简单地划两条直线将特征空间分成两部分
24 | - 得出结论:**分类任务的本质就是在特征空间中的切分**,高维空间同理
25 | - 思维:实际数据特征不止两个这么简单,我们应学会将高维空间先降维至低维空间思考
26 |
27 | ### 如何选取特征 举例
28 | > MNIST 数据集是一个最大的手写字符数据集,其经常被应用在机器学习领域,用于训练和测试。
29 |
30 |
31 |
32 | - 每个手写数字图像中每个像素点都可以看作为一个特征,因此可以用28*28=784个像素点的灰度值即特征来描述该图像,那么彩色图像特征如RGB值也更多,因此特征可以很抽象
33 |
34 | - **特征数据很大程度将决定算法运行的结果**,如何挖掘特征大家可以另外深入学习
35 |
36 |
37 | ### 相关概念
38 | - 数据集(data set):一组记录的合集
39 | - 样本(sample):也叫示例,对于某个对象的描述
40 | - 特征(feature):也叫属性,对象的某方面表现或特征
41 | - 特征空间(feature space):特征张成的空间
42 | - 样本空间/输入空间(sample space):同特征空间
43 | - 特征向量(feature vector):在特征空间里每个点对应一个坐标向量,把一个样本称作特征向
44 | - 维数(dimensionality):描述样本参数的个数(也就是空间是几维的)
45 |
46 | ---
47 |
48 | - 作者:Exrick
49 | - Github地址:https://github.com/Exrick/Machine-Learning
50 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
51 |
--------------------------------------------------------------------------------
/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/127313-6ee7f73fd968d278.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/127313-6ee7f73fd968d278.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20180725205546.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20180725205546.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20180725221256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20180725221256.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20181106220953_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.1 认识机器学习中的数据/screenshot/QQ截图20181106220953_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.1 认识机器学习中的数据/线性代数 矩阵.md:
--------------------------------------------------------------------------------
1 | # 1.1 线性代数 矩阵
2 |
3 | ###
4 |
--------------------------------------------------------------------------------
/1.机器学习基础/1.2 机器学习的主要任务/1.2 机器学习的主要任务.md:
--------------------------------------------------------------------------------
1 | # 1.2 机器学习的主要任务
2 |
3 | ### 主要任务
4 |
5 | - 分类:划分类别 (有限范围)
6 | - 识别是否为垃圾邮件(二分类,分类结果仅两种),手写数字识别(多分类)
7 |
8 | - 回归:结果是一个数值 (离散)
9 | - 预测股价、房价
10 |
11 | 
12 |
13 | ### 分类任务
14 |
15 | - 学会将问题转化为分类任务,如
16 | - 下围棋:根据棋盘选择一个点落子
17 | - 自动驾驶:根据环境选择方向盘朝什么方向转多少度、踩下油门或刹车力度
18 |
19 | - 一些算法只支持解决二分类,一些只支持多分类,也有都支持解决的算法
20 |
21 | - 多标签分类任务
22 |
23 |
24 |
25 | - 每部电影都有可能被分成一个或多个不同的类别。每个实例都可以使用多个类别进行分配。这类类型的问题被称为多标签分类问题。
26 |
27 | ### 回归任务
28 | - 结果为连续的数值,如预测房价、成绩
29 |
30 |
31 |
32 | - 一些算法只支持解决分类问题,一些只支持回归问题,也有都支持解决的算法
33 | - 回归任务可转化为分类任务
34 | - 如预测成绩多少分值为回归任务,实际有时候只需评级,如为60分以下不及格、90分以上为优秀,因此又将该问题转化为分类任务
35 |
36 | ### 相关概念
37 | - 分类(classification):预测值是离散值,比如把人分为好人和坏人之类的学习任务
38 | - 回归(regression):预测值是连续值,比如你的好人程度达到了0.9,0.6之类的
39 | - 二分类(binary classification):只涉及两个类别的分类任务
40 | - 多分类(multi-class classification):涉及多个类别的分类
41 |
42 | ---
43 |
44 | - 作者:Exrick
45 | - Github地址:https://github.com/Exrick/Machine-Learning
46 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
47 |
--------------------------------------------------------------------------------
/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20180728195902.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20180728195902.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20181106222409_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20181106222409_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20181106222752_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.2 机器学习的主要任务/screenshot/QQ截图20181106222752_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.3 机器学习算法的几大分类/1.3 机器学习算法的几大分类.md:
--------------------------------------------------------------------------------
1 | # 1.3 机器学习算法的几大分类
2 |
3 | ### 机器学习算法的几大分类
4 | - 监督学习
5 | - 给机器训练的数据有标记(结果/答案),即给了机器答案的划分,这种正确的划分就是一种监督
6 |
7 | 
8 |
9 | - 例如医院拥有了大量病人患病的信息和确诊信息,通过这些数据训练机器来确定病人患病情况(再具体点:肿瘤是恶性还是良性)
10 |
11 | - 监督学习主要处理两大问题:
12 | - 分类
13 | - 回归
14 | - 非监督学习
15 | - 反之,给机器训练的数据没有任何标记(结果/答案)
16 | - 聚类分析:对没标记的数据进行分类
17 | - 应用:社交网络分析,市场划分,天文数据分析等
18 |
19 | 
20 | - 例如淘宝用户随着浏览购买商品产生的数据我们可以对顾客数据进行分析分成许多类别
21 | - 非监督学习的作用一:降维,方便可视化
22 | - 特征提取:扔掉无关的特征
23 | - 特征压缩(PCA算法):不扔掉任何特征,从中提取部分特征也可正确得出结果,提高运行效率。即尽量少损失信息,将高维特征向量压缩为低维特征向量
24 | - 非监督学习的作用二:异常检测
25 |
26 |
27 |
28 | > 无监督学习本身的特点使其难以得到如分类一样近乎完美的结果。假设两个人刷高考题,一个正常刷题,而另一人做的所有题目没有答案,那么想必第一个人高考会发挥更好,第二个人会发疯。
29 |
30 | - 半监督学习
31 | - 一部分数据有标记,一部分没有
32 | - 这种情况在实际场景下很常见,通常使用无监督学习先对数据处理,再使用监督学习进行模型训练
33 |
34 | - 增强学习
35 |
36 | 
37 |
38 | - AlphaGo、无人驾驶都是增强学习的应用,监督学习、半监督学习依然是基础
39 |
40 | ### 其他分类
41 |
42 | - 批量学习(离线学习)
43 | - 一次性批量将数据喂给算法(填鸭式学习),训练后的模型不再变化
44 | - 优缺点:简单,但如果要适应新环境变化需要重新批量学习,由于运算量巨大,例如在股市每时每刻都在变化,这种情况显然不可行
45 | - 在线学习
46 | - 输入样例后马上能得到正确的结果(股市),再根据得到的结果改进机器学习算法。即循环学习,不断修正优化模型
47 | - 优缺点:能及时反映新环境变化,但新数据是好是坏(异常数据?),因此需要对异常数据进行检查(非监督学习应用)
48 | - 参数学习
49 | - 假设线性关系,例如最简单的 `f(x)=ax+b`,机器学习的本质就是找到最优的参数a和b(基本的线性回归),一旦通过大量数据集学到参数后,数据集即没用了。
50 | - 非参数学习
51 | - 不对模型进行过多假设,但不代表没参数,区别于参数学习,不对问题建模,不把问题理解为学习参数
52 |
53 | ### 相关概念
54 | - 监督学习(supervised learning):分类和回归
55 | - 无监督学习(unsupervised learning):聚类
56 | - 聚类(clustering):把训练集中的对象分为若干组
57 | - 半监督学习(Semi-Supervised Learning):使用大量的未标记数据,同时使用标记数据,来进行模式识别工作
58 | - 增强学习(Reinforcement Learning):解决一个能感知环境的自治
59 | agent,怎样通过学习选择能达到其目标的最优动作问题。
60 | - 批量学习(Batch Learning):一次性批量输入给学习算法,可以被形象的称为填鸭式学习
61 | - 在线学习(Online Learning):按照顺序,循序的学习,不断的去修正模型,进行优化
62 | - 参数学习(Parametric Learning):假设可以最大程度地简化学习过程,与此同时也限制可以学习到是什么。这种算法简化成一个已知的函数形式
63 | - 非参数学习(Nonparametric Learning):不对目标函数的形式作出强烈假设的算法。通过不做假设,它们可以从训练数据中自由地学习任何函数形式
64 | ---
65 |
66 | - 作者:Exrick
67 | - Github地址:https://github.com/Exrick/Machine-Learning
68 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
69 |
--------------------------------------------------------------------------------
/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20180728201449_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20180728201449_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20180905214010_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20180905214010_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20181106224120_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/QQ截图20181106224120_副本.png
--------------------------------------------------------------------------------
/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/timg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/1.机器学习基础/1.3 机器学习算法的几大分类/screenshot/timg.jpg
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.1 Python3的安装/2.1 Python3的安装.md:
--------------------------------------------------------------------------------
1 | # 2.1 Python3的安装
2 |
3 | > 由于Pyhton2相对过时,且官方即将停止维护,请使用安装使用python3版本
4 |
5 | ### Windows
6 |
7 | - [官网下载](https://www.python.org/downloads/)
8 |
9 | - 踩坑提醒 截至2018年9月1日 建议请[下载3.6.6版本](https://www.python.org/downloads/release/python-366/),请勿下载最新3.7,避免不兼容,打开3.6.6版本网页后滑至底部可看到各版本,根据你系统选择下载
10 |
11 | 
12 |
13 | > 更新:2019年03月19日 现可尝试下载最新版本
14 |
15 | - 记得勾选添加环境变量,避免手动添加
16 |
17 |
18 |
19 | - 接下来一路下一步安装即可
20 | - 完成后打开命令窗口输入执行 `python` 即可看到当前安装pyhton版本说明安装成功
21 |
22 | ### Mac
23 |
24 | - [下载地址](https://www.python.org/downloads/mac-osx/)
25 | - 双击下一步安装即可
26 | - 同样命令窗口终端输入 `python` 或 `python3` 验证是否安装成功(mac自带2.7版本)
27 |
28 | 
29 |
30 | ### 其他系统版本自行根据官网说明安装
31 |
32 | ---
33 |
34 | - 作者:Exrick
35 | - Github地址:https://github.com/Exrick/Machine-Learning
36 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
37 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.1 Python3的安装/screenshot/QQ截图20180904233717.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.1 Python3的安装/screenshot/QQ截图20180904233717.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.1 Python3的安装/screenshot/QQ截图20180904235947.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.1 Python3的安装/screenshot/QQ截图20180904235947.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/2.2 相关IDE的安装与使用.md:
--------------------------------------------------------------------------------
1 | # 2.2 相关IDE的安装与使用
2 |
3 | ### Jupyter Notebook的安装与使用
4 |
5 | > Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化和叙述文本的文档。用途包括:数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等等。
6 |
7 | - [官网安装教程](http://jupyter.org/install)
8 |
9 | - 只需要使用python安装该库即可
10 |
11 | ```
12 | pip --version 或 python -m pip --version # 检查pip
13 | python -m pip install --upgrade pip # 若无pip安装最新
14 | python -m pip install jupyter # 安装jupyter
15 | ```
16 | Python3版本安装
17 | ```
18 | python3 -m pip install --upgrade pip 或 pip3 install --upgrade pip #安装最新pip
19 | python3 -m pip install jupyter #安装jupyter
20 | ```
21 | - 安装完成后执行命令 `jupyter notebook` 即可运行自动打开Web
22 |
23 | - 由于notebook可对历史代码进行修改或执行、单元格操作、编辑Markdown、导出等强大功能,本学习笔记主要主要使用该编译器,当然具体使用方法或快捷键自行搜索,菜单栏上工具有什么用请自行尝试使用了解,以后用到的地方也会提到一些。
24 |
25 | > 最新版本现已支持中文!
26 |
27 | - 新建一个notebook,选择内核语言
28 |
29 | 
30 |
31 | - 输入代码使用快捷键 Shift + Enter 或点击运行Run按钮执行,单击单元格可继续编辑
32 |
33 | 
34 |
35 | - 快捷键或帮助文档查看
36 |
37 | 
38 |
39 | - 高级魔法命令的使用
40 |
41 | - `%run`:运行本地其他脚本文件,示例:`%run hello.py`
42 | - `%timeit`:测试查看运行时间,示例:`%timeit L = 1`,多次循环测试取平均值
43 | - `%time`:只取一次测量时间
44 | - 查看所有魔法命令 `%lsmagic`
45 | - 相应魔法命令文档 加问号即可 `%run?`
46 |
47 | 
48 |
49 | ### PyCharm的安装
50 |
51 | - 使用pyhton开发的小伙伴应该不会陌生,JetBrains旗下产品
52 |
53 | - [官方下载地址](https://www.jetbrains.com/pycharm/download/#section=windows)
54 |
55 | - 下载Professional专业版的话自己去找激活方法
56 |
57 | - 安装使用问题具体百度
58 |
59 | ### Anaconda的安装
60 |
61 | - 截至2018年9月5日,Anaconda版本5.2
62 |
63 | - [官方下载地址](https://www.anaconda.com/download/)
64 |
65 | - 选择Python 3.6 version版本
66 |
67 | - [官网安装教程](http://docs.anaconda.com/anaconda/install/windows/)
68 |
69 | 
70 |
71 | - 安装使用问题具体百度
72 |
73 | ---
74 |
75 | - 作者:Exrick
76 | - Github地址:https://github.com/Exrick/Machine-Learning
77 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
78 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905000934_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905000934_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905002137_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905002137_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905102714.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905102714.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905233038_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905233038_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905235640_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.2 相关IDE的安装与使用/screenshot/QQ截图20180905235640_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/2.3 Numpy的基本使用(一).md:
--------------------------------------------------------------------------------
1 | # 2.3 Numpy的基本使用(一)
2 |
3 | > NumPy 是一个Python包。它代表 “Numeric Python”。它是一个由多维数组对象和用于处理数组的例程集合组成的库。可以执行以下操作:数组的算数和逻辑运算;傅立叶变换和用于图形操作的例程;与线性代数有关的操作,NumPy拥有线性代数和随机数生成的内置函数。NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。
4 |
5 | - 官网:http://www.numpy.org
6 |
7 | - 安装Numpy
8 | - `pip install numpy` 或 `python -m pip install numpy`
9 | - Jupyter Notebook使用补充
10 | - 鼠标点击单元格左侧空白处,快捷键 `M` 切换Markdown输入
11 | - 菜单栏 `Insert` 可插入单元格,对应快捷键 `A` 和 `B`
12 | - 删除单元格 `双击D`
13 | - `Tab` 可提示补全
14 |
15 | 
16 |
17 | 
18 |
19 | 
20 |
21 | 
22 |
23 | 
24 |
25 | 
26 |
27 | 
28 |
29 | 
30 |
31 | 
32 |
33 | 
34 |
35 | ---
36 |
37 | - 作者:Exrick
38 | - Github地址:https://github.com/Exrick/Machine-Learning
39 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
40 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230656_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230656_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230746_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230746_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230850_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230850_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230910_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230910_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230921_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180906230921_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230554_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230554_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230611_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230611_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230645_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230645_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230708_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230708_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230729_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.3 Numpy的基本使用(一)/screenshot/QQ截图20180909230729_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/2.4 Numpy的基本使用(二).md:
--------------------------------------------------------------------------------
1 | # 2.4 Numpy的基本使用(二)
2 |
3 | - 官网:http://www.numpy.org
4 |
5 | 
6 |
7 | 
8 |
9 | 
10 |
11 | 
12 |
13 | 
14 |
15 | 
16 |
17 | 
18 |
19 | 
20 |
21 | 
22 |
23 | 
24 |
25 | 
26 |
27 | 
28 |
29 | 
30 |
31 | 
32 |
33 | 
34 |
35 | ---
36 |
37 | - 作者:Exrick
38 | - Github地址:https://github.com/Exrick/Machine-Learning
39 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
40 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/10_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/10_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/11_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/11_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/12_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/12_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/13_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/13_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/14_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/14_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/15_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/15_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/16_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/16_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/1_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/1_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/2_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/2_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/3_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/3_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/4_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/4_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/5_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/5_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/6_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/6_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/7_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/7_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/8_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/8_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/9_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.4 Numpy的基本使用(二)/screenshot/9_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/2.5 Numpy的基本使用(三).md:
--------------------------------------------------------------------------------
1 | # 2.5 Numpy的基本使用(三)
2 |
3 | - 官网:http://www.numpy.org
4 |
5 | 
6 |
7 | 
8 |
9 | 
10 |
11 | 
12 |
13 | 
14 |
15 | 
16 |
17 | 
18 |
19 | 
20 |
21 | 
22 |
23 | 
24 |
25 | 
26 |
27 | 
28 | ---
29 |
30 | - 作者:Exrick
31 | - Github地址:https://github.com/Exrick/Machine-Learning
32 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
33 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/10_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/10_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/11_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/11_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/12_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/12_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/1_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/1_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/2_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/2_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/3_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/3_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/4_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/4_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/5_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/5_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/6_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/6_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/7_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/7_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/8_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/8_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/9_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.5 Numpy的基本使用(三)/screenshot/9_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/2.6 Matplotlib的基本使用.md:
--------------------------------------------------------------------------------
1 | # 2.5 Matplotlib的基本使用
2 |
3 | > Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
4 |
5 | - 官网:https://matplotlib.org
6 |
7 | - 安装Matplotlib
8 | - `pip install -U matplotlib` 或 `python -m pip install -U matplotlib`
9 | - 具体使用请查询官方文档,以下仅总结一些常用命令
10 |
11 | - 中文显示配置
12 | - 由于matplotlib库中无中文字体,图例为中文时将无法显示
13 | - 推荐解决方案一:每次编码前进行参数配置
14 |
15 | ```python
16 | import matplotlib.pyplot as plt
17 | plt.rcParams['font.sans-serif']=['SimHei'] # 正常显示中文
18 | plt.rcParams['axes.unicode_minus']=False # 正常显示负号
19 | ```
20 | - 方案一Mac下配置说明
21 | ```python
22 | import matplotlib
23 | # 查看matplotlib支持的字体集
24 | a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
25 | for i in a:
26 | print(i)
27 | # 找一个上面输出的中文字体,如Adobe Heiti Std
28 | plt.rcParams['font.family']=['Adobe Heiti Std'] # 正常显示中文
29 | plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
30 | ```
31 | - 推荐解决方案二:替换matplotlib字体库,一劳永逸 [参考地址](http://segmentfault.com/a/1190000005144275)
32 |
33 | 
34 |
35 | 
36 |
37 | 
38 |
39 | 
40 |
41 | 
42 |
43 | 
44 |
45 | 
46 |
47 | 
48 |
49 | 
50 |
51 | 
52 |
53 | 
54 |
55 | 
56 |
57 | 
58 |
59 | ---
60 |
61 | - 作者:Exrick
62 | - Github地址:https://github.com/Exrick/Machine-Learning
63 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
64 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/1.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/11.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/2.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/3.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/4.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/5.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/6.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/7.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/8.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/9.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107125938_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107125938_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107130124_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107130124_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107130142_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181107130142_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181108195151_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.6 Matplotlib的基本使用/screenshot/QQ截图20181108195151_副本.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/2.7 Scikit-learn的简单探索.md:
--------------------------------------------------------------------------------
1 | # 2.6 Scikit-learn的简单探索
2 |
3 | > Scikit-learn是一个专门用于机器学习的Python库。它基于NumPy,SciPy和matplotlib构建,是一个简单有效的数据挖掘和数据分析工具。
4 |
5 | - 官网:http://scikit-learn.org
6 |
7 | - 安装Matplotlib
8 | - `pip install -U scikit-learn` 或 `python -m pip install -U scikit-learn`
9 |
10 | - 再次提醒请学会查看官方文档,由于scikit-learn本身就是一个专门用于机器学习的开源库,大家在其官网就能学到很多东西
11 |
12 | - 官方开源地址:https://github.com/scikit-learn/scikit-learn
13 |
14 | - 文档:http://scikit-learn.org/stable/documentation.html
15 |
16 | - User Guide:http://scikit-learn.org/stable/user_guide.html
17 |
18 | - 简单探索
19 |
20 | 
21 |
22 | 
23 |
24 | 
25 |
26 | 
27 |
28 | 
29 |
30 | 
31 |
32 | 
33 |
34 | ---
35 |
36 | - 作者:Exrick
37 | - Github地址:https://github.com/Exrick/Machine-Learning
38 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
39 |
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/2.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/3.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/4.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/5.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/6.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/7.png
--------------------------------------------------------------------------------
/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/QQ截图20181107130015_副本.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/2.机器学习相关工具安装与使用/2.7 Scikit-learn的简单探索/screenshot/QQ截图20181107130015_副本.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/3.1 KNN算法原理与简单实现.md:
--------------------------------------------------------------------------------
1 | # 3.1 KNN算法原理与简单实现
2 |
3 | > K最近邻(k-Nearest Neighbor,KNN)分类算法,是最简单的机器学习算法之一,涉及高等数学知识近乎为0,虽然它简单,但效果很好,是入门机器学习的首选算法。但很多教程只是一笔带过,在这里通过该算法,我们可以学习到在机器学习中所涉及的其他知识点和需要注意的地方。
4 |
5 | - 在之前的鸢尾花数据集中,我们只将2种花的150个样本的前2个特征在二维特征空间中表示,如下图
6 |
7 |
8 |
9 | - 那么当来了一个新的数据(如下图中绿色的点),我们如何判断它最可能属于哪种花呢
10 |
11 |
12 |
13 | ### KNN算法原理
14 |
15 | - 我们先取一个k值(即KNN中的"K"),在这里我们先根据经验假设取得了最优值k=3。K近邻算法做的事情就是**对于每个新的点,我们计算出距离它最近的前k个点,然后这k个点进行投票**,在这里k=3,如下图所示
16 |
17 |
18 |
19 | - 这个例子中,蓝色:红色为2:1
20 |
21 |
22 |
23 | - 因此该新的绿色数据点更有可能属于蓝色类别的花
24 |
25 |
26 |
27 | - 即KNN算法就是通过**各样本之间的相似程度**(样本空间中的距离)作出判断,因此只考虑1个样本是不具有说服力的,通常我们考虑k为多个
28 |
29 | - 这里K近邻解决的就是前面讲到的分类问题,它也可以解决回归问题
30 |
31 | ### KNN算法的简单实现
32 |
33 | - 经过上面的分析我们可以得出该算法大致思路,即判断新来的数据点与其他所有数据的**距离**,距离最近的点的类别即可能为该新点的类别
34 | - 这里模拟了十组数据,每组数据横坐标代表已患肿瘤天数,纵坐标代表对应肿瘤大小,依次对应标记数据:0代表良性肿瘤用绿点表示,1代表恶性肿瘤红点表示
35 |
36 | 
37 |
38 | - 这里所用到的数学公式是大家初高中就学习的求两点(x1, y1)与(x2, y2)间距离公式,
,即**欧氏距离**公式
39 |
40 |
41 |
42 | - 假设现在来了一个新的病人数据(2.5, 2.2)对应图中蓝色点,绘制散点图后我们可以很容易发现其属于红色即恶性肿瘤一类,那么接下来让我们用代码实现吧
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | - 通过预测结果得出:由于该点所属类别很可能为1(恶性肿瘤),因此很遗憾,该病人很可能已经是癌症晚期
53 | ---
54 |
55 | - 作者:Exrick
56 | - Github地址:https://github.com/Exrick/Machine-Learning
57 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
58 |
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/1.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/10.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/11.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/2.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/3.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/4.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/5.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/6.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/7.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/8.png
--------------------------------------------------------------------------------
/3.KNN/3.1 KNN算法原理与简单实现/screenshot/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.1 KNN算法原理与简单实现/screenshot/9.png
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/3.2 Scikit-learn中KNN算法的封装.md:
--------------------------------------------------------------------------------
1 | # 3.2 Scikit-learn中KNN算法的封装
2 | - 我们将之前自己实现的KNN算法继续完善,加入了一些参数变量判断,并将其封装进了函数方法
3 |
4 | ``` python
5 | import numpy as np
6 | from math import sqrt
7 | from collections import Counter
8 |
9 | '''
10 | k:kNN中的k,判断多少个最近的数据
11 | xTrain:待训练的特征数据
12 | yTrain:待训练的Label标记数据
13 | x:新的待预测判断的数据
14 | return 返回预测结果
15 | '''
16 | def kNNClassify(k, xTrain, yTrain, x):
17 |
18 | # k需大于1且小于训练集样本数量
19 | print(k)
20 | print(xTrain.shape[0])
21 | if 1 <= k <= xTrain.shape[0]:
22 | print("无效的K值")
23 | return
24 | # 训练数据特征需与Label一一对应数量相同
25 | if xTrain.shape[0] != yTrain.shape[0]:
26 | print("训练数据特征与Label数量不同")
27 | return
28 | # 训练数据特征维度需与待预测的数据相同
29 | if xTrain.shape[0] != x.shape[0]:
30 | print("训练数据特征维度与待预测的数据不同")
31 | return
32 |
33 | distances = [sqrt(np.sum((xTrain - x)**2)) for xTrain in xTrain]
34 | nearest = np.argsort(distances)
35 | topKY = [yTrain[i] for i in nearest[:k]]
36 | votes = Counter(topKY)
37 |
38 | return votes.most_common(1)[0][0]
39 | ```
40 | - 使用魔法命令加载该文件,运行函数得到一致的预测结果
41 |
42 |
43 |
44 | ### 小结
45 | - 通过该KNN机器学习算法的学习,对比之前的机器学习流程图,我们可以知道:
46 | - 对于监督学习,训练数据集既要有特征也包括了相应的标签(如刷高考题,既给你题目也给你答案)
47 | - 训练模型这个过程更专业的叫法英文中为`fit`,通常译为**拟合**;最后得出预测结果即为`predict`
48 | - **由于KNN算法的特殊性,我们未得到一个训练出的模型,因为KNN是一个不需要训练过程的算法,没有模型,但其训练数据集即可被看做为模型**
49 |
50 |
51 |
52 |
53 |
54 |
55 | ## Scikit-learn中KNN算法的使用
56 |
57 | > 再次提醒学会查询帮助文档及官方文档
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | - 如上就是使用Scikit-learn中的算法相当标准的步骤,总结为如下四步:
66 | - 加载相应算法
67 | - 创建实例(传入相应参数)
68 | - Fit拟合
69 | - Predict预测得出结果
70 |
71 | ## 模仿Scikit-learn重构自己实现的kNN算法
72 |
73 | ``` python
74 | import numpy as np
75 | from math import sqrt
76 | from collections import Counter
77 |
78 | class kNNClassifier:
79 | # 定义构造函数
80 | def __init__(self, k):
81 |
82 | assert k>=1, "无效的K值"
83 | self.k = k
84 | # 加上_定义为protected变量
85 | self._xTrain = None
86 | self._yTrain = None
87 |
88 | # 定义fit方法
89 | def fit(self, xTrain, yTrain):
90 |
91 | self._xTrain = xTrain
92 | self._yTrain = yTrain
93 | return self
94 |
95 | # 定义predict方法
96 | def predict(self, xPredict):
97 |
98 | assert self._xTrain is not None and self._yTrain is not None, "请先进行Fit"
99 | assert xPredict.shape[1] == self._xTrain.shape[1], "特征数量与训练数据集不一致(列数不一致)"
100 |
101 | yPredict = [self._predict(x) for x in xPredict]
102 | return np.array(yPredict)
103 |
104 | def _predict(self, x):
105 |
106 | assert x.shape[0] == self._xTrain.shape[1], "特征数量与训练数据集不一致(列数不一致)"
107 |
108 | distances = [sqrt(np.sum((xTrain - x)**2)) for xTrain in self._xTrain]
109 | nearest = np.argsort(distances)
110 | topKY = [self._yTrain[i] for i in nearest[:self.k]]
111 | votes = Counter(topKY)
112 |
113 | return votes.most_common(1)[0][0]
114 |
115 | def __repr__(self):
116 | return "kNN(k=%d)" % self.k
117 | ```
118 |
119 |
120 | - 当然,Scikit-learn中底层实现的kNN算法没这么简单,为提升性能做了很多优化。
121 | ---
122 |
123 | - 作者:Exrick
124 | - Github地址:https://github.com/Exrick/Machine-Learning
125 | - 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
126 |
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/kNN.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from math import sqrt
3 | from collections import Counter
4 |
5 | '''
6 | k:kNN中的k,判断多少个最近的数据
7 | xTrain:待训练的特征数据
8 | yTrain:待训练的Label标记数据
9 | x:新的待预测判断的数据
10 | return 返回
11 | '''
12 | def kNNClassify(k, xTrain, yTrain, x):
13 |
14 | # k需大于1且小于训练集样本数量
15 | print(k)
16 | print(xTrain.shape[0])
17 | if 1 <= k <= xTrain.shape[0]:
18 | print("无效的K值")
19 | return
20 | # 训练数据特征需与Label一一对应数量相同
21 | if xTrain.shape[0] != yTrain.shape[0]:
22 | print("训练数据特征与Label数量不同")
23 | return
24 | # 训练数据特征维度需与待预测的数据相同
25 | if xTrain.shape[0] != x.shape[0]:
26 | print("训练数据特征维度与待预测的数据不同")
27 | return
28 |
29 | distances = [sqrt(np.sum((xTrain - x)**2)) for xTrain in xTrain]
30 | nearest = np.argsort(distances)
31 | topKY = [yTrain[i] for i in nearest[:k]]
32 | votes = Counter(topKY)
33 |
34 | return votes.most_common(1)[0][0]
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/kNNClassifier.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from math import sqrt
3 | from collections import Counter
4 |
5 | class kNNClassifier:
6 | # 定义构造函数
7 | def __init__(self, k):
8 |
9 | assert k>=1, "无效的K值"
10 | self.k = k
11 | # 加上_定义为protected变量
12 | self._xTrain = None
13 | self._yTrain = None
14 |
15 | # 定义fit方法
16 | def fit(self, xTrain, yTrain):
17 |
18 | self._xTrain = xTrain
19 | self._yTrain = yTrain
20 | return self
21 |
22 | # 定义predict方法
23 | def predict(self, xPredict):
24 |
25 | assert self._xTrain is not None and self._yTrain is not None, "请先进行Fit"
26 | assert xPredict.shape[1] == self._xTrain.shape[1], "特征数量与训练数据集不一致(列数不一致)"
27 |
28 | yPredict = [self._predict(x) for x in xPredict]
29 | return np.array(yPredict)
30 |
31 | def _predict(self, x):
32 |
33 | assert x.shape[0] == self._xTrain.shape[1], "特征数量与训练数据集不一致(列数不一致)"
34 |
35 | distances = [sqrt(np.sum((xTrain - x)**2)) for xTrain in self._xTrain]
36 | nearest = np.argsort(distances)
37 | topKY = [self._yTrain[i] for i in nearest[:self.k]]
38 | votes = Counter(topKY)
39 |
40 | return votes.most_common(1)[0][0]
41 |
42 | def __repr__(self):
43 | return "kNN(k=%d)" % self.k
44 |
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190718-205950@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190718-205950@2x.png
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-143401@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-143401@2x.png
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-143643@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-143643@2x.png
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-155643@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-155643@2x.png
--------------------------------------------------------------------------------
/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-203849@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Exrick/Machine-Learning/f2bc315f9a61f18fd6712d47ca949091b4a4f11a/3.KNN/3.2 Scikit-learn中KNN算法的封装/screenshot/WX20190723-203849@2x.png
--------------------------------------------------------------------------------
/3.KNN/3.3 如何判断算法的好坏与性能/3.3 如何判断算法的好坏与性能.md:
--------------------------------------------------------------------------------
1 | # 3.3 如何判断算法的好坏与性能
2 | - 问题:将所有真实数据通过训练得出的模型如果很差怎么办?
3 | - 解决办法:训练与测试数据集分离
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Machine-Learning
2 | > 个人机器学习(Machine Learning, ML)笔记 参考多个学习资源 包含个人理解与总结 不能保证完全专业正确性 如有错误欢迎提出 期待您的补充贡献!
3 |
4 |
5 |
6 | - 机器学习:让机器去学习
7 |
8 | ## 目录
9 |
10 |
章节 | 13 |小节 | 14 |数学知识补充 | 15 |参与贡献人 | 16 |
---|---|---|---|
介 绍 | 19 |什么是机器学习 | 20 |21 | | Exrick | 22 |
第 1 章: 机器学习基础 | 25 |1.1: 认识机器学习中的数据 | 26 |线性代数: 矩阵 | 27 |Exrick | 28 |
31 | | 1.2: 机器学习的主要任务 | 32 |33 | | Exrick | 34 |
37 | | 1.3: 机器学习算法的几大分类 | 38 |39 | | Exrick | 40 |
第 2 章: 机器学习相关工具安装与使用 | 43 |2.1: Python3的安装 | 44 |45 | | Exrick | 46 |
49 | | 2.2: 相关IDE的安装与使用 | 50 |51 | | Exrick | 52 |
55 | | 2.3: Numpy的基本使用(一) | 56 |57 | | Exrick | 58 |
61 | | 2.4: Numpy的基本使用(二) | 62 |63 | | Exrick | 64 |
67 | | 2.5: Numpy的基本使用(三) | 68 |69 | | Exrick | 70 |
73 | | 2.6: Matplotlib的基本使用 | 74 |75 | | Exrick | 76 |
79 | | 2.7: Scikit-learn的简单探索 | 80 |81 | | Exrick | 82 |
第 3 章: 最简单的分类算法:k近邻算法 | 85 |3.1: KNN算法原理与简单实现 | 86 |87 | | Exrick | 88 |
91 | | 3.2: Scikit-learn中KNN算法的封装 | 92 |93 | | Exrick | 94 |
97 | | 3.3: 如何判断算法的好坏与性能 | 98 |99 | | Exrick | 100 |