1 机器学习基础
1.1 何为机器学习
机器学习简单点说就是把无序的数据转换成有用的信息。
1.2 关键术语
系统,特征,实例,分类,训练集,训练样本,目标变量,类别,测试数据,知识表示,特征或者属性通常是训练样本集的列,他们是独立测量的结果,多个特征联系在一起共同组成一个训练样本
1.3 机器学习的主要任务
用于执行分类、回归、聚类、密度估计的机器学习算法监督学习 用途 k-近邻算法 线性回归 朴素贝叶斯算法 局部加权线性回归 支持向量机 Ridge回归 决策树 Lasso最小回归系数估计 无监督学习 用途 K-均值 最大期望算法 DBSCAN Parzen窗设计 1.4 如何选择合适的算法
选择实际可用的算法要考虑两个问题
一、使用机器学习的目的,想要算法完成何种任务
如果想要预测目标变量的值,可以选监督学习算法,否则可以选择无监督学习算法。目标变量类型如果是离散型的,则选择分类算法,是连续性的,则选择回归算法,如果还需要估计数据与每个数据的相似程度,则选择使用密度估计算法
上面给出的是都是可以帮助选出合适的机器学习算法,并不是一定的方法。
二、需要分析或搜集的数据是什么
主要了解数据的几种特征:特征值是离散型变量还是连续型变量,特征之中是否存在缺失值,何种原因造成缺失值,数据中是否存在异常值,等等。只有充分了解数据才可以减少选择机器学习算法的时间。
同时我们还要测试其它算法,毕竟算法的结果最好的、最适合的才是我们最后选用的- 1.5 开发机器学习应用程序的步骤
开发机器学习应用程序的步骤基本有6步,收集数据、准备输入数据、分析输入数据、训练算法(如果使用无监督学习就不需要这步)、测试算法、使用算法。 - 1.6 Python 语言的优势
那我们为什么用Python作为实现机器学习算法的编程语言:Python语法清晰;易于操作纯文本;使用广泛。 - 1.7 NumPy 函数库基础
机器学习需要用到很多线性代数的知识,所以需要会使用Numpy函数库。
from numpy import *
print(random.rand(4, 4)) #4*4的随机二维数组
'''
[[0.91816364 0.70927184 0.04492905 0.1011124 ]
[0.92401388 0.7861067 0.77647915 0.16926795]
[0.7895121 0.08507276 0.22925607 0.88874465]
[0.6526571 0.5898706 0.69038695 0.42274922]]
'''
randMat = mat(random.rand(4, 4))#4*4的随机矩阵
print(randMat)
'''
[[0.01992629 0.4547085 0.89749702 0.88324542]
[0.51350029 0.21140377 0.41727752 0.44430164]
[0.38491888 0.53160816 0.69589642 0.64733635]
[0.84788633 0.17265198 0.06064525 0.39666805]]
'''
print(randMat.I) # .I是对矩阵的求逆
'''
[[ 2.01524412 2.36781988 -2.61138123 -0.83509491]
[ 1.26610367 -0.84333237 0.67476965 -0.84647424]
[-1.45836621 0.11607197 1.14232309 0.69492346]
[-0.69851942 0.0113055 -0.36907452 1.51465822]]
'''
invRandMat = randMat.I
print(randMat*invRandMat)# 矩阵相乘
'''
[[ 1.00000000e+00 3.09099629e-16 2.87774706e-17 5.47131995e-16]
[-4.92348445e-17 1.00000000e+00 -1.49944904e-17 2.38624177e-16]
[ 8.85503106e-17 1.41417816e-16 1.00000000e+00 2.10834945e-16]
[ 1.66850341e-17 1.42302433e-16 -3.55054002e-17 1.00000000e+00]]
'''
myEye = randMat*invRandMat
print(myEye-eye(4))# eye(4)4*4的单位矩阵
'''
[[ 2.22044605e-16 -3.60694362e-16 -1.02403175e-16 1.21866988e-18]
[ 4.07332018e-17 0.00000000e+00 3.15517330e-17 -9.55460955e-18]
[ 7.40256546e-17 6.91514519e-17 6.66133815e-16 1.36016280e-16]
[ 8.87242192e-17 -3.35509838e-16 1.50374218e-16 0.00000000e+00]]
'''