机器学习算法之多变量线性回归练习(二)

本文介绍了如何使用Python实现多变量线性回归模型,包括数据读取、代价函数和梯度下降的实现,以及训练集和测试集的抽样。在训练过程中记录代价函数值,并在测试集上进行预测,最后绘制了预测值与真实值的散点图,展示了模型的预测能力。
摘要由CSDN通过智能技术生成

题目要求

1.按要求完成下面的各项需求。
利用python编写如下程序,
现有一个循环发电场样本数据集,其中包括训练集(ccpp_train.txt文件)和测试集(ccpp_test.txt文件)。数据集格式如下:

AT(温度) V(压力) AP(湿度) RH(压强) PE(输出电力)
8.34 40.77 1010.84 90.01 480.48
23.64 58.49 1011.4 74.2 445.75
29.74 56.9 1007.15 41.91 438.76

请通过Python实现线性回归模型,并用此模型预测输出电力,具体要求如下:
完成数据集的读取
实现代价函数
实现梯度下降函数
要求输出迭代过程中的代价函数值
完成测试集的数据预测,并计算在测试集上的代价函数值
以横轴为真实值,纵轴为预测值,画出散点图

代码实现

import numpy as np
from matplotlib import pyplot as plt
# 读取数据
data_train = np.loadtxt(r'ccpp_train.txt',delimiter=',')
data_test = np.loadtxt(r'ccpp_train.txt',delimiter=',')


# 定义数据处理函数
def preprocess(data):
    # 数据提取
    X = data[:,:-1]
    y = data[:,-1]
    # 特征缩放
    X -= np.mean(X,axis=0)
    X /= np.std(X,axis=0,ddof=1)
    # 数据初始化
    X = np.c_[np.ones(len(X)),X]
    y = np.c_[y]
    # 数据处理完毕 返回
    return X,y


# 调用数据处理函数获得处理好的数据
X_train,y_train = preprocess(data_train)
X_test,y_test = preprocess(data_test)


# 定义模型
def model(X,theta):
    h = np.dot(X,theta)
    return h


# 定义代价函数
def costFunction(h,y):
    m = len(h)
    J = (1.0/(2 * m)) * np.sum(np.square(h -y))
    return J


# 定义梯度下降
def gradeDesc(X,y,alpha=0.01,iter_num=2000):
    # 数据准备
    # 获取维度
    m,n = X.shape
    # 初始化theta
    theta = np.zeros((n,1))
    # 初始化代表值
    J_history = np.zeros(iter_num)
    # 执行梯度下降
    for i in range(iter_num):
        # 调用模型获得数据的预
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值