简单回归模型建立(下)

目录

数据准备

特征选择

目标变量

模型选择

示例代码

​编辑分析结果


上部分对数据进行了分析以及可视化

选择不同的目标变量,例如"Cost of Living Index"作为我们要预测的目标。然后,我们可以使用其他相关的指标作为特征来训练模型。例如,考虑使用"Rent Index","Groceries Index","Restaurant Price Index","Local Purchasing Power Index"等作为特征。

下面是一个简单的步骤来构建这样一个模型:

  1. 数据准备:选择特征和目标变量,对数据进行预处理。
  2. 模型选择:选择一个合适的机器学习模型。
  3. 模型训练:使用数据训练模型。
  4. 模型评估:评估模型的性能。

数据准备

首先,需要将数据分为特征(X)和目标变量(y)。在这个例子中,假设我们的目标是预测"Cost of Living Index"。

特征选择

我们可以选择以下几个特征:

  • Rent Index
  • Groceries Index
  • Restaurant Price Index
  • Local Purchasing Power Index

目标变量

使用"Cost of Living Index"作为目标变量。

模型选择

对于这种回归问题,可以尝试使用线性回归模型,因为它是简单且易于理解的。如果线性回归的效果不佳,可以尝试更复杂的模型,比如决策树回归或随机森林回归。

示例代码

Python代码示例:

python 复制代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 加载数据
data_path = r'D:\机器学习\数据集:国家划分的生活成本\Cost_of_Living_Index_by_Country_2024.csv'
df = pd.read_csv(data_path)

# 特征选择
features = ['Rent Index', 'Groceries Index', 'Restaurant Price Index', 'Local Purchasing Power Index']
X = df[features]
y = df['Cost of Living Index']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)

print(f'Mean Squared Error: {mse}')
print(f'R^2 Score: {r2}')

分析结果

在得到模型的结果后,可以查看均方误差(Mean Squared Error, MSE)和决定系数(R^2 Score)来评估模型的好坏。均方误差越低越好,而决定系数接近1则表明模型拟合得很好。

Mean Squared Error: 8.094471876337387

R^2 Score: 0.9737474308220024

可以看出0.97还是非常接近1的

建立简单回归模型的步骤可以总结如下:

  1. 确定变量:首先,需要明确自变量(解释变量)和因变量(响应变量)。例如,在广告费用与销售额的关系中,广告费用是自变量,销售额是因变量。

  2. 数据预处理:在进行建模之前,通常需要对数据进行清洗和准备。这包括处理缺失值、异常值以及确保数据满足线性关系的基本假设。

  3. 绘制散点图:通过绘制散点图来可视化自变量和因变量之间的关系,初步判断它们之间是否存在线性关系。

  4. 建立模型 :使用适当的统计软件或编程语言(如R、Python等)中的函数来拟合回归模型。在R中,可以使用lm()函数;在Python中,可以使用sklearn库中的LinearRegression类。

  5. 模型拟合:利用数据拟合回归模型,得到回归系数(β0和β1),其中β0是截距,β1是斜率。

  6. 模型检验:检查模型的显著性和拟合优度,包括R²值、F检验、t检验等统计指标,以评估模型的有效性。

  7. 预测与诊断:使用模型进行预测,并对模型进行诊断,检查残差分布是否符合正态分布,是否存在异方差性等问题。

  8. 模型优化:根据模型诊断结果,可能需要调整模型参数或使用其他技术(如正则化)来改善模型性能。

  9. 结果解释与应用:最后,解释模型参数的含义,并将模型应用于实际问题中进行预测或决策支持。

相关推荐
leaf_leaves_leaf12 分钟前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零117 分钟前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
404NooFound24 分钟前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
天天要nx36 分钟前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
minstbe36 分钟前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机
落魄实习生1 小时前
AI应用-本地模型实现AI生成PPT(简易版)
python·ai·vue·ppt
苏言の狗1 小时前
Pytorch中关于Tensor的操作
人工智能·pytorch·python·深度学习·机器学习
用余生去守护1 小时前
python报错系列(16)--pyinstaller ????????
开发语言·python
数据小爬虫@1 小时前
利用Python爬虫快速获取商品历史价格信息
开发语言·爬虫·python
是Dream呀2 小时前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络