请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

bobo老师,看了6-8之后,我有几个问题,
1.之前您说**“因为线性回归有解释性,所以拿到数据可以先进行线性回归”**。
是不是可以这么理解,
拿到有label的数据之后
第一步:线性回归,
第二步:随机梯度下降(因为不知道数据是不是凸数据)
第三步:看返回来的权值来决定用什么算法
第四步:如果是可以用梯度下降的算法,先跑一遍漫长的梯度检测,得到准确无误的Θ,然后再用梯度下降或者是随机梯度下降,看自己的程序是否正确?

2.梯度检测的目的是否为:确保自己调整超参数时,梯度下降得到的Θ准确性?
因为我感觉如果我自己使用梯度下降的话应该会直接调用sklearn中的梯度下降算法,包里的梯度下降算法应该不会产生错误吧,产生错误的原因是我调整的超参数不对,导致Θ不正确
如果是这样的话,我看其他地方会使用cv set 来验证参数,是不是多此一举了0.0?

3.之前把吴恩达老师的机器学习刷了一遍,又买了一本西瓜书,感觉脑子里东西有点乱乱的,一般来说,拿到一个数据集,是不是和我这个图一样的流程。图片描述

添加回答

已采纳回答

1)

我在课程中说遇到数据可以先使用一下线性回归,是因为线性回归本身可解释的特性,使得我们可以利用线性回归查看各个特征的“重要程度”,根据此,我们可以相应的进行诸如特征选择,或者确定是否需要进一步挖掘数据特征的工作。说白了,是线性回归法可以帮助我们做“特征工程”。


关于特征工程的讨论,可以参考这里:http://coding.imooc.com/learn/questiondetail/40722.html


2)

对于你的第二个问题,我有点儿没有看懂。我没有理解你是如何得到:使用cv set 来验证参数,多此一举的结论的。实际上,这个课程后续会讲交叉验证(cv),交叉验证是非常重要的,绝不是多此一举。可以看到课程后续,再回过头来思考这个问题。


3)

你画的图,整体思路是对的。就是线性回归那里没有那么复杂。

整体,对于一个机器学习的任务:

我们首先要确定这是一个什么任务(监督学习?非监督学习?回归问题?分类问题?)

然后,我们要做特征工程。这个课程没有介绍特征工程,都是假设数据的特征已经没有问题了,具体开始使用机器学习算法。

具体使用机器学习算法的过程,分 train, test,然后调用算法就好了。课程后续会介绍验证集(validateion),关于这部分流程后续会介绍。


具体求解模型参数的过程,各个算法是封装好的。从上层调用的角度,其实不用过于关心一个模型内部的模型参数是如何运算出来的。但是,对于机器学习工程师,要了解其中的原理,才能选取合适的参数(或者调整合适的参数)。这就好像我们调用 sort 就能对数据排序一样。我们在生产环境其实不需要写排序代码,但是工程师要理解排序的内部逻辑。


求解出的模型在测试数据集上的结果如果不够理想,那就需要调整参数,或者再做特征工程,然后继续训练模型,以此类推。


p.s. 你画的图里最主要的错误,其实是逻辑回归不是解决回归问题的,而是解决分类问题的。这一点课程后续介绍逻辑回归的时候会讲到。


继续加油!:)

2020-10-13 19:56:06
  • 提问者 malo #1
    非常感谢!
    2020-10-13 19:57:46
  • 提问者 malo #2
    嗯,老师我已经看到CV那边了,CV主要就是起到之前test的作用,使得新的test set 不参与建模的任何一个步骤对吧,,,,看了老师的答案,感觉有点思路了。
    2020-10-13 20:04:44
  • 继续加油!:)
    2020-10-13 20:09:14

Python3入门机器学习 经典算法与应用 轻松入行人工智能

难度中级
时长25小时
人数4334
好评度100%

Python3+sklearn,同时兼顾原理,算法底层实现和框架使用。零基础机器学习从此起步

讲师

liuyubobobo 全栈工程师

创业者,全栈工程师,持续学习者。对技术开发,产品设计、前后端,ios,html5,智能算法等领域均有接触;拥有多款独立App作品;对一切可编程的东西有浓厚兴趣,对游戏编程格外感兴趣。相信编程改变一切。

意见反馈 帮助中心 APP下载
官方微信