线性回归与梯度下降(gradient descent) python

环境 numpy (1.12.1) + python 2.7

#!/usr/bin/env python 
#coding:utf-8

import numpy as np 

x1 = np.asarray([1,3,5])	# 训练样本
x2 = np.asarray([1,4,4])
y1 = 100
y2 = 150

W = np.zeros(3)				# 初始化参数

def hx(W, X):				# 待拟合的假设函数
	return W.dot(X)

X = [x1, x2]
Y = [y1, y2]

lamda = 0.01				# 学习率

for i in range(1000):
	for x, y in zip(X, Y):
		W = W - lamda * (hx(W, x)-y) * x 	# 参数更新
		print W, hx(W, x)-y 				# 更新后的参数,当前loss


print 'w0,w1,w2 = [4.54545455  43.18181818  -6.81818182]'
print 'w0 is intercept'
print '根据数据 直观的可以看出 y与第2个特征成正比,与第三个特征成反比,而学习到的特征权重正是如此'
print '参数绝对值越大,说明该特征越重要,推广到分类中,参数为正表示该特征为正样本特征(二分类中label为1的类别/多分类中正样本为当前类别)'
print '---end---'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值