当前位置: 首页 > article >正文

人工智能直通车系列13【机器学习基础】(线性回归模型实现scikit - learn)

目录

线性回归模型实现步骤及解释

场景示例


在 Python 中,scikit-learn是一个常用的机器学习库,提供了丰富的工具和算法用于各种机器学习任务,包括线性回归模型的实现。

线性回归模型实现步骤及解释

  1. 导入必要的库和模块
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

这里导入了numpypandas用于数据处理,LinearRegression是线性回归模型类,train_test_split用于将数据集划分为训练集和测试集,mean_squared_errorr2_score用于评估模型的性能。

  1. 准备数据
# 生成一些示例数据
data = {
    'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    'y': [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
}
df = pd.DataFrame(data)

# 划分特征和目标变量
X = df[['x']]
y = df['y']

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

首先创建了一个简单的数据集,包含特征x和目标变量y,它们之间存在线性关系y=2x。然后使用train_test_split函数将数据集按照 8:2 的比例划分为训练集和测试集,random_state=42确保每次运行结果的可重复性。

  1. 创建和训练模型
# 创建线性回归模型对象
model = LinearRegression()

# 使用训练数据拟合模型
model.fit(X_train, y_train)

创建LinearRegression类的实例model,然后使用训练集X_trainy_train来拟合模型,即通过最小二乘法等方法找到最佳的模型参数(斜率和截距)。

  1. 进行预测
# 使用训练好的模型进行预测
y_pred = model.predict(X_test)

使用训练好的模型对测试集X_test进行预测,得到预测值y_pred

  1. 评估模型性能
# 计算均方误差(MSE)
mse = mean_squared_error(y_test, y_pred)

# 计算决定系数(R²)
r2 = r2_score(y_test, y_pred)

print(f'均方误差: {mse}')
print(f'决定系数: {r2}')

使用mean_squared_error函数计算均方误差(MSE),它衡量了预测值与真实值之间的平均平方误差,值越小表示模型性能越好。使用r2_score函数计算决定系数(R2),它表示模型对数据的拟合程度,取值范围在 0 到 1 之间,越接近 1 表示模型拟合效果越好。

场景示例

假设你是一位房地产分析师,想要预测房屋价格。你收集了一些房屋的面积数据以及对应的销售价格,希望通过线性回归模型来建立房屋面积与价格之间的关系,从而对新的房屋进行价格预测。

# 读取房屋数据
house_data = pd.read_csv('house_data.csv')

# 提取特征和目标变量
X = house_data[['area']]
y = house_data['price']

# 划分训练集和测试集
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)

# 进行预测
y_pred = model.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'房屋价格预测模型 - 均方误差: {mse}')
print(f'房屋价格预测模型 - 决定系数: {r2}')

# 预测新房屋价格
new_house_area = [[150]]  # 假设新房屋面积为150平方米
predicted_price = model.predict(new_house_area)
print(f'面积为150平方米的新房屋预测价格: {predicted_price[0]}')

在这个示例中,从 CSV 文件中读取房屋数据,将房屋面积作为特征,价格作为目标变量。通过scikit-learn的线性回归模型进行训练、预测和评估。最后,使用训练好的模型对面积为 150 平方米的新房屋进行价格预测。


http://www.kler.cn/a/579903.html

相关文章:

  • 图论——差分约束
  • 贪心算法三
  • Android Glide 框架线程管理模块原理的源码级别深入分析
  • C++基础算法:高精度
  • 项目-苍穹外卖(二)增加用户+用户分页查询
  • BUUCTF [GUET-CTF2019]soul sipse 1
  • K8S 集群搭建——cri-dockerd版
  • KUKA机器人:智能制造的先锋力量
  • 深入理解 HTML 中的段落与折行
  • Java数据结构第十九期:解构排序算法的艺术与科学(一)
  • 【Ubuntu系统设置固定内网ip,且不影响访问外网 】
  • debian根文件系统制作
  • 【每日学点HarmonyOS Next知识】 状态变量、公共Page、可见区域变化回调、接收参数、拖拽排序控件
  • 杂项知识笔记搜集
  • 18天 - 常见的 HTTP 状态码有哪些?HTTP 请求包含哪些内容,请求头和请求体有哪些类型?HTTP 中 GET 和 POST 的区别是什么?
  • IOday6
  • 深入了解Linux —— 调试程序
  • EXCEL IF自动填充功能
  • linux网络编程中bind函数和accept函数的作用以及它们的第一次参数描述符的联系以及返回值的区别
  • 贪心算法--