NG 线性回归

# 线性回归 标准方程法

import numpy as np
import pandas as pd 

A = pd.read_table('LR.txt',header=None,usecols = (0,1,2))

X = np.mat(A.iloc[:,0:2])
y = np.mat(A.iloc[:,2]).T

# 求转置: X.T  求逆:X.I
TRAN_X = X.T 

params = (TRAN_X*X).I*TRAN_X*y
print(params)




# 梯度下降法
import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt

A = pd.read_table('LR.txt',header=None,usecols = (0,1,2))

X = np.mat(A.iloc[:,0:2])
y = np.mat(A.iloc[:,2]).T

m = A.index.max()

params = np.mat([1.0,1.0]).T #求参数params_1要用到的

cost = []
time = 50

for i in range(time):
	error_col = X*params-y #误差列
	cost.append(sum( np.multiply(error_col,error_col) )[0,0]/(2*m)) #cost function 作为监控画图
	params[0] = params[0] - (0.1/m)*sum(error_col) #0.1为学习率 可以取0.001 0.003 0.01 0.03 。。。0.1
	params[1] = params[1] - (0.1/m)*sum(np.multiply(error_col,np.mat(A.iloc[:,1]).T))
print(params)


#可视化
# 逼近
plt.subplot(221),plt.plot(range(time),cost,'r--*'),plt.title('desence'),plt.xlabel('Itera Times'),plt.ylabel('Cost function')

# 拟合函数
x=np.linspace(0,1,200)
plt.subplot(222),plt.plot(A.iloc[:,1],A.iloc[:,2],'b*'),plt.title('Hypothesis function'),plt.plot(x,params[1,0]*x+params[0,0],'r-')
plt.show()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值