机器学习之回归
什么是人工智能(AI)
人工智能(AI)长远以来的目标:希望机器可以和人一样聪明。
机器学习的三要素:
- 确定一个函数
- 选择一个度量值用于衡量一个方法
- 一个好的算法从中选择最好的结果
什么是人工智能的学习呢?
并不是那种已经计划好的使用判语句进行处理的内容,那种“人工智能”就类似于我们说的“人工智障”,只能够处理预期的内容,其他的一概不会。到最后啼笑皆非。
- 真正的人工智能需要经过模型的定义通过大量数据的学习后认知和了解有关的特征,最后可以对没有见过的数据进行预测。
- 原理:人类认知事物是有一个时间的,通过不断的摸索才能够获得有关的知识与认知。而人工智能就是模仿人类对事物的认知来进行训练的。
- 举例:第一个吃螃蟹的人,在观察事物中不断的探索,最后经过大家的不断尝试 确认螃蟹是可以吃的,但是不是每个人都可以吃,有些 人会过敏!而人工智能就是把大量的数据存入模型让模型去训练,一遍遍的探索,最后获得一个比较好的认知结果。有可能把数据放进模型经过几千轮的迭代就类似于人类数百年的学习和探索。
注: 以上内容源于个人理解!
不同的内容学习办法、学习方式、获得结果也不尽相同。
回归:
通过以前的一些数据对未来的数据进行预测,得到的输出是一个结果。
最经典的:波士顿房价预测
分类:
通过输出可以分为:二分类和多分类。
二分类:得到两个输出,类似于yes or no。
多分类:需要一个列表,输出的是列表中每个数据的可能性。
除了上面属于监督式学习还有半监式、非监督式、迁移学习、强化学习……
以上是目前AI道路上的主要或主流学习方式内方法,需要更据实际情况进行学习和参考,通过不断积累的经验进行训练和强化,才能够获得更好的model
才能够有更加优秀的人工智能产品。
回归
(小期许:期待李老师早日回归 (私货))
第一步:构建模型
根据一个实际情况对模型进行构建。如上图就构建了一个二元一次的线性模型。里面对w
和b
是未知的需要我们的模型进行一个列举然后获得对应的结果。
第二部:功能完善
通过数据处理与查看,进一步了解我们所需要的内容,对数据进行处理和对模型的完善。
第三步:选取最好的结果
通过对模型的训练我们可以通过优化函数找到我们效果最好的那个值并且把他应用于我们的模型中。
loss
- 一个未知数的loss变化:
我们通过学习率和所在的切线dL/dw
(微分)的乘积得到我们需要“走”(移动)的距离然后和原数据的差距就可以到下一个点然后继续之前的步骤,直到到达最低点
如上图所示当移动到wT
点时数据就会停下来。因为无论学习率和斜率的乘积都是0就不会运动了,这个就是目前的一个结果。
- 两个未知数的loss
先初始化两值w0
、b0
接着计算:
w = w0 ; b = b0
时w对loss的偏微分,b对loss的偏微分。
更新参数:
w1 = w0 - 学习率 * w对loss的偏微分
b1 = b0 - 学习率 * b对loss的偏微分
通过不断的更新就可以找到loss相对比较小的值。
下图就是以上内容的图像表达:
每个点的微分方向就是所在点切线的法线上
- 如果数据和下图那么就会出现两个不一样的"最优值"。
我们通过????????/???????? and Τ????/????????
来进行查看
- 通过微分的计算可以得到我们想要的结果。
结果展示
通过loss获取最好的结果得到数据然后进行还原以后得到了下图:
y = 2.7 * x -188.4
以上结果可以看出来数据没有完全预测得到我们想要的结果。
我们可以计算error
的值来对计算的优劣成果进行评价
error
的值等于每个点到预测线的距离的平均值
我们这个误差值是否具有代表性?结果是不一定!
我们需要找到其他的未经过测试的结果来进一步的预测。
通过比较两个error
之间的值来比较模型的优劣。
模型调整
上面的数据对最后的结果并不满意需要进一步的提高 就要对原本的模型进行调整。
- 改成二元二次方程。
y = b + w1 * xcp + w2 * (xcp) ^2
通过新的模型进行学习实际的结果可以证明新的模型效果比旧的好。
- error 的值也进一步得到了提高
- 改成二元三次方程。
y = b + w1 * xcp + w2 * (xcp) ^2 + w3 * (xcp)^3
- 结果虽然和第二个模型相差不大,但是也是有一定的效果的。
- 改成二元四次方程。
y = b + w1 * xcp + w2 * (xcp) ^2 + w3 * (xcp)^3 + w4 * (xcp)^4
- 继续使用更复杂的模型。
通过最后两个模型的比较发现数据变得更差的error的预测值更加的糟糕了。
过拟合
上一篇: R一元线性回归
推荐阅读
-
[笔记]音视频学习之视音频数据处理入门《一》YUV、RGB(上)
-
机器学习进阶-目标跟踪-KCF目标跟踪方法 1.cv2.multiTracker_create(构造选框集合) 2. cv2.TrackerKCF_create(获得KCF追踪器) 3. cv2.resize(变化图像大小) 4.cv2.selectROI(在图像上框出选框)
-
大顶堆算法的应用——机器学习算法中的应用
-
图傅里叶变换和机器学习方法相结合的一些理论和应用研究 图像傅里叶变换实验
-
在python机器学习中,classification_report函数用于输出模型评估报告,其中查全率的定义公式被包含
-
ML之sklearn:学习sklearn.linear_model中的LogisticRegression函数的详细介绍与使用指南(一)
-
Alink漫谈(十一) :线性回归 之 L-BFGS优化
-
深入了解BFGS和L-BFGS:机器学习系列探索
-
sklearn常用机器学习算法
-
机器学习常见异常和解决办法汇总