• 11.(Python数模)(预测模型三)多元线性回归预测


    多元线性回归

    简介

    多元线性回归使用在自变量和因变量有逻辑相关性的情况中。在实际应用中,多元线性回归经常用于探索和解释变量之间的复杂关系,例如经济学、社会科学和自然科学等领域。它提供了一种统计工具来分析多个自变量对因变量的影响,并帮助研究人员做出预测和决策。

    使用的是sklearn库中的LinearRegression。LinearRegression 是一个线性回归模型,常用于预测连续型变量的值。它基于最小二乘法,通过拟合一个线性函数来建立特征与目标变量之间的关系。你可以使用该模型来进行回归分析和预测。

    要使用 LinearRegression 模型,你需要导入适当的库,并且准备好特征和目标变量的数据。通常,你会将数据分成训练集和测试集,然后使用训练集来训练模型,再使用测试集来评估模型的性能。

    源代码

    import pandas as pd
    import numpy as np
    import xlrd
    from sklearn.linear_model import LinearRegression
    import matplotlib.pyplot as plt
    def readDataFile(readPath):  # readPath: 数据文件的地址和文件名
        try:
            if (readPath[-4:] == ".csv"):
                dfFile = pd.read_csv(readPath, header=0, sep=",")  # 间隔符为逗号,首行为标题行
                # dfFile = pd.read_csv(filePath, header=None, sep=",")  # sep: 间隔符,无标题行
            elif (readPath[-4:] == ".xls") or (readPath[-5:] == ".xlsx"):  # sheet_name 默认为 0
                dfFile = pd.read_excel(readPath,header=0)  # 首行为标题行
                # dfFile = pd.read_excel(filePath, header=None)  # 无标题行
            elif (readPath[-4:] == ".dat"):  # sep: 间隔符,header:首行是否为标题行
                dfFile = pd.read_table(readPath, sep=" ", header=0)  # 间隔符为空格,首行为标题行
                # dfFile = pd.read_table(filePath,sep=",",header=None) # 间隔符为逗号,无标题行
            else:
                print("不支持的文件格式。")
        except Exception as e:
            print("读取数据文件失败:{}".format(str(e)))
            return
        return dfFile
    
    df = readDataFile('p2_水生根茎类7日.xlsx')
    
    print(df)
    model = LinearRegression()
    
    X = df[['销售单价','批发单价']].values
    y = df['销售总量'].values
    model.fit(X, y)
    coefficients = model.coef_
    intercept = model.intercept_
    
    # X_new = df.iloc[15:20,2:7].values
    # y_pred = model.predict(X_new)
    
    print('回归系数:', coefficients)
    print('截距:', intercept)
    # print('预测结果:', y_pred)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    输入的数据如下:
    在这里插入图片描述

    代码注释

    1、readDataFile。这个函数是我常用的一个读取文件函数。非常方便,不管什么格式的数据,都能够一键读取到dataframe当中

    2、model.fit(X, y) 是一个用于训练机器学习模型的方法。在这个方法中,X 是输入特征集,y 是对应的目标变量。通过调用 fit() 方法,模型会根据输入数据进行训练,并学习出适合预测目标变量的参数。

    3、系数(coefficients)表示特征对目标变量的影响程度,而截距(intercept)则表示在所有特征都为零时的预测值。这段代码模型中获取系数和截距。

    4、y_pred = model.predict(X_new)。y_pred是一个变量,它表示使用模型对输入数据X_new进行预测得到的输出结果。在这里,model是一个预训练好的模型,调用predict方法可以使用这个模型对新的输入数据进行预测。预测结果会保存在y_pred变量中。

  • 相关阅读:
    让“作用域和闭包”说人话
    魔法猪系统重装大师怎么使用
    AIR32F103(四) 27倍频216MHz,CoreMark跑分测试
    MyBatis:2_Mapper代理
    深度学习模型调参经验
    SpringCloud(5):Ribbon详解
    Cookie
    vscode 快速打印console.log
    MacOS - Cpolar 在 Mac 上如何使用?
    超自动化的未来
  • 原文地址:https://blog.csdn.net/qq_43920838/article/details/132803904