# -*- coding: utf-8 -*-
import numpy as np
import random
from numpy import genfromtxt
def getData(dataSet):
m, n = np.shape(dataSet)
trainData = np.ones((m, n))
trainData[:,:-1] = dataSet[:,:-1]
trainLabel = dataSet[:,-1]
return trainData, trainLabel
def batchGradientDescent(x, y, theta, alpha, m, maxIterations):
xTrains = x.transpose()
for i in range(0, maxIterations):
hypothesis = np.dot(x, theta)
loss = hypothesis - y
# print loss
gradient = np.dot(xTrains, loss) / m
theta = theta - alpha * gradient
return theta
def predict(x, theta):
m, n = np.shape(x)
xTest = np.ones((m, n+1))
xTest[:, :-1] = x
yP = np.dot(xTest, theta)
return yP
dataPath = r"E:\learning\house.csv"
dataSet = genfromtxt(dataPath, delimiter=',')
trainData, trainLabel = getData(dataSet)
m, n = np.shape(trainData)
theta = np.ones(n)
alpha = 0.1
maxIteration = 5000
theta = batchGradientDescent(trainData, trainLabel, theta, alpha, m, maxIteration)
x = np.array([[3.1, 5.5], [3.3, 5.9], [3.5, 6.3], [3.7, 6.7], [3.9, 7.1]])
print(predict(x, theta))
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现的梯度下降算法.zip (1个子文件)
基于Python实现的梯度下降算法
梯度下降法.py 1KB
共 1 条
- 1
资源评论
Mopes__
- 粉丝: 1269
- 资源: 374
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功