多变量线性回归在初创企业利润预测中的应用

在这篇文章中,将探讨如何使用多变量线性回归模型来预测初创企业的利润。多变量线性回归是一种机器学习算法,它允许为单一因变量提供多个自变量。与传统的线性回归不同,后者只需要一个自变量作为输入。通过本文,将了解多变量线性回归的公式,通过一个实际的例子学习如何实现它,并了解其在机器学习中的重要性。最终,将掌握这种基本的统计技术及其在数据分析中的应用。

目录

  • 定义X和Y
  • 执行独热编码
  • 使用列转换器更改列
  • 将数据集分割为训练集和测试集
  • 训练模型
  • 预测测试结果
  • 评估模型
  • 绘制结果
  • 预测值
  • 数据集处理

开始之前

首先,需要导入一些Python库来帮助进行数据分析和模型训练。这些库包括NumPy、Pandas、Scikit-learn等,它们将用于数据处理、模型训练和评估以及结果可视化。

import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings("ignore")

使用train_test_split来分割数据集,LinearRegression作为要使用的模型,r2_score用于评估模型的准确性,而matplotlibseaborn则用于数据可视化。

导入数据集

接下来,将导入数据集。可以通过提供的链接下载数据集,并使用Pandas的read_csv函数将其导入。

startup_df=pd.read_csv(r'50_Startups.csv') print(startup_df.head())

查看数据集的形状,以了解数据集中的行数和列数。

shape=startup_df.shape print("数据集包含 {} 行和 {} 列".format(shape[0],shape[1]))

数据集包含50行和5列。查看数据集中的所有列,可以看到包含研发支出、行政支出、市场支出、州和利润等字段。

在这一步,需要定义模型的输入和输出特征。X代表自变量,即数据集中的独立值,而Y代表因变量,即模型要预测的结果。

x=startup_df.iloc[:,:4] y=startup_df.iloc[:,4]

执行独热编码是处理数据集中分类值的一种方法。在数据集中,州是一个分类字段,因此需要使用独热编码将其转换。

from sklearn.preprocessing import OneHotEncoder ohe=OneHotEncoder(sparse=False) x=ohe.fit_transform(startup_df[['State']])

使用列转换器可以方便地对指定列进行转换。

from sklearn.compose import make_column_transformer col_trans=make_column_transformer( (OneHotEncoder(handle_unknown='ignore'),['State']), remainder='passthrough') x=col_trans.fit_transform(x)

现在,将数据集分割为训练集和测试集,通常按照80%训练集和20%测试集的比例进行分割。

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)

训练模型时,使用线性回归模型,并使用训练集对其进行训练。

linreg=LinearRegression() linreg.fit(x_train,y_train)

使用预测方法对测试集的结果进行预测。

y_pred=linreg.predict(x_test)

评估模型时,使用r2_score作为评估指标。

Accuracy=r2_score(y_test,y_pred)*100 print("模型的准确性为 %.2f%%" %Accuracy) plt.scatter(y_test,y_pred); plt.xlabel('实际值'); plt.ylabel('预测值'); pred_df=pd.DataFrame({'实际值':y_test,'预测值':y_pred,'差异':y_test-y_pred})
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485