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