机器学习的意义:
不是单纯模仿的机器人,也不是具备人类感情的仿生人,机器学习的意义是利用计算机来挖掘数据背后的真实含义。
机器学习必备概念:
1 训练集,用于训练机器学习算法的数据样本集合,与之相对应的是测试集
2 特性,数据的不同属性,训练集不同的列,代表不同的维度
3目标变量,机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。
4知识表示,机器学习最终的产出
5 监督学习,有训练样本进行训练,有测试样本进行回归的学习方式
6 无监督学习,没有训练集支持训练,完全靠自己的建模。
机器学习的开发步骤:
1 收集数据,原始资料的收集,爬虫、传感器、实测数据等方式获得。
2 准备输入数据
因为第一步收集上来的数据不能直接使用,需要进行格式转化,转化成机器语言可以处理的格式。
3 分析输入数据(非必需)
再次人工干预确认是否有垃圾数据,能否用来进行学习
4 训练算法
监督学习,将前两步得到的格式化数据输入到算法,从中抽取知识或信息。
5 测试算法
测试算法的工作效果,如果是监督学习,需要测试集回归算法统计出错误概率
6 使用算法
将学习结果封装成应用程序,执行实际任务
需要掌握的基本公式:
欧氏距离公式(欧几里得度量):(Xa,Ya)和(Xb,Yb)之间的距离是
d=开根号((Xb-Xa)**2 + (Yb-Ya)**2)
贝叶斯公式:反概率论用得到
P(A│B)* P(B)= P(B│A)* P(A)
翻译过来是概率B发生的前提下发生概率A的概率等于概率A发生的前提下概率B发生的概率
需要掌握一门机器学习的语言,这里我们使用Python,Python在运行效率上很慢,但是提供了很丰富的扩展包供我们使用,在编程上简洁易懂,是入门机器学习的不二语言。
Python扩展包的安装:
1 首先在自己脚本里执行下
import pip
print (pip.pep425tags.get_supported())
找到适合自己的扩展包的版本
2 扩展包的下载地址在:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
必备的包有numpy、matplotlib等,下载跟自己版本对应的whl文件
3 命令行执行pip installXXXX.whl文件,执行成功后会得到相应的文件夹,文件夹内是新的扩展模块
Numpy的矩阵(Matrix)和数组(array)使用起来很容易引起混淆,这两个概念需要加强了解,通过print()和内容排列看不出区别,这两个的差别主要在于运算。
Matrix_A =
[ [1,4]
[3,2] ]
Matrix_B =
[ [2,1]
[1,3] ]
矩阵相乘A*B,A的第一行与B的第一列相乘得到0,0坐标的值(1*2+4*1=6); A的第一行与B的第二列相乘得到0,1左标的值(1*1+4*3=13);以此类推1,0左标值(3*2+2*1=8);右下角是(3*1+2*3=9)
所以A*B的结果是
[ [6,13]
[8,9] ]
如果将矩阵换成数组的话,A*B的结果是两个矩阵对应的左标相同的值进行相乘。0,0坐标的值(1*2=2); 0,1坐标的值(4*1=4);以此类推1,0左标值(3*1=3);右下角是(2*3=6)
所以A*B的结果是
[ [2,4]
[3,6] ]
有了乘法的区别,可以理解阶乘也是有区别的。
A**2,A是矩阵和A是数组的结果显然是不同的。
Numpy模块下矩阵和数组是可以通过numpy. asarray() 和 numpy. asmatrix()来进行转换的。