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

本文通过一个简单的线性回归例子,介绍了如何使用Python和NumPy实现梯度下降法来求解最佳拟合直线。通过调整参数使损失函数最小化,最终得到能够较好地预测输出变量的模型。
部署运行你感兴趣的模型镜像

环境 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---'


您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值