为了账号安全,请及时绑定邮箱和手机立即绑定

Python实现线性回归

难度初级
时长 1小时 5分
学习人数
综合评分8.77
32人评价 查看评价
9.0 内容实用
8.8 简洁易懂
8.5 逻辑清晰

已采纳回答 / Beb
个人认为讲师说得有一点问题,不瞒秩或者不正定的时候,存在多个解,并不是没有解,即解不唯一。此时选择哪一个解作为最后模型的参数呢?一是通过既定的选择便好来决定;二是采用梯度下降来近似。我觉得性能问题倒不是主要原因,主要原因是因为存在多个解(至于为什么你可以查查矩阵相关的资料)。
相看原理的去吴恩达的机器学习课程,讲的比这深入清晰多了。
矩阵表示形式写错了,应该是theta的转置乘以X
讲的挺好的,可惜自己学习时间不够,先挖个坑,后续继续学

最赞回答 / LotQin
水什么水?

最新回答 / 慕粉756330
是老师本地的一个csv格式的文件,相当于一个excel文件,也就是老师第一次输出的那些值

最新回答 / 天空之城123
矩阵相乘 A*B     A是m*n  B必须为n*k  A的每一行乘以B的每一列(保证A的每行和B的每列元素个数相同)  线性代数了解一下
改正一下,那个X.reshape()不能删,那个就是权重啊,才想明白
换了X的值或改一下参数,就会出错。
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
实在想不出引号部分有什么用,感觉是多余的,直接删了,就没问题了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
这样,随便改X,X里数的个数,参数,都没有问题。记得把‘3.’改成X的数的个数就行。
其实‘/3.’不写也行,会减慢收敛速度‘3’倍,以及得到的值可能是实际参数的近似值
代码更新:Python3.2.6
theat=np.full((4,1),1.,dtype=float) #用 1.0去填充一个4*1的array,类型指定float
alpha=0.1
x0=X.iloc[:,0].values.reshape(-1,1) #-1进行占位,代表有多少个算多少个,例如是150,则-1代表150,其它同理
x1=X.iloc[:,1].values.reshape(-1,1)
x2=X.iloc[:,2].values.reshape(-1,1)
x3=X.iloc[:,3].values.reshape(-1,1)
print(x3[0:6,:])
讲的非常好,很有实用性!
期待下讲。非常好
0.0123讲的真好
课程须知
1、有机器学习基础 2、有一定的python基础
老师告诉你能学到什么?
1、线性回归的概念 2、最小二乘法的python实现 3、梯度下降的python实际 4、编程处理线性回归分析的一般方法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消