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

model_selection.train_test_split函数介绍

目录

  • model_selection.train_test_split函数
  • 实战

model_selection.train_test_split函数

model_selection.train_test_split 是 Scikit-Learn 中用于将数据集拆分为训练集和测试集的函数。这个函数非常有用,因为在机器学习中,我们通常需要将数据集分为训练集和测试集,以便在模型训练和评估中使用不同的数据集。

下面是 model_selection.train_test_split 函数的基本介绍:

model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)
  1. *arrays: 这是待拆分的数据集,可以是特征矩阵和目标向量,也可以是多个特征矩阵。例如,如果有一个特征矩阵 X 和一个目标向量 y,可以使用 X, y 作为参数传入。
  2. test_size: 测试集的大小,可以是浮点数(表示比例)或整数(表示样本数)。
  3. train_size: 训练集的大小,和 test_size 作用相同,如果不指定则默认为 1 - test_size。
  4. random_state: 随机种子,用于控制数据集的随机拆分,以便结果可重复。 shuffle: 是否在拆分数据前对数据进行洗牌。
  5. stratify: 按照某个变量(通常是目标变量)进行分层抽样,以确保训练集和测试集中各类别样本的比例与原始数据集中相同。

举个例子,假设有一个特征矩阵 X 和一个目标向量 y,可以使用 model_selection.train_test_split 将数据集拆分为训练集和测试集:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

这将会把特征矩阵 X 和目标向量 y 按照 8:2 的比例拆分为训练集和测试集,并且使用随机种子 42 来确保拆分结果的可重复性。

实战

# 导入模块
from sklearn import model_selection
import statsmodels.api as sm
import numpy as np 
import pandas as pd 
from scipy.stats import f # 导入数据
Profit = pd.read_excel(r'Predict to Profit.xlsx')
# 生成由State变量衍生的哑变量
dummies = pd.get_dummies(Profit.State)
# 将哑变量与原始数据集水平合并
Profit_New = pd.concat([Profit,dummies], axis = 1)
# 删除State变量和California变量(因为State变量已被分解为哑变量,New York变量需要作为参照组)
Profit_New.drop(labels = ['State','New York'], axis = 1, inplace = True)
# 拆分数据集Profit_New
train, test = model_selection.train_test_split(Profit_New, test_size = 0.2, random_state=1234)
# 建模
model2 = sm.formula.ols('Profit~RD_Spend+Administration+Marketing_Spend+Florida+California', data = train).fit()
print('模型的偏回归系数分别为:\n', model2.params)模型的偏回归系数分别为:Intercept             58068.048193
Florida[T.True]        1440.862734 
California[T.True]      513.468310 
RD_Spend                  0.803487 
Administration           -0.057792 
Marketing_Spend           0.013779 
dtype: float64
http://www.lryc.cn/news/493604.html

相关文章:

  • Springboot 读取 resource 目录下的Excel文件并下载
  • SQL EXISTS 子句的深入解析
  • 33.Java冒泡排序
  • Docker容器ping不通外网问题排查及解决
  • JavaScript 库 number-precision 如何使用?
  • faiss库中ivf-sq(ScalarQuantizer,标量量化)代码解读-2
  • 性能测试工具Grafana、InfluxDB和Collectd的搭建
  • 【ruby on rails】dup、deep_dup、clone的区别
  • 原生微信小程序画表格
  • Python实现IP代理池
  • 互联网直播/点播EasyDSS视频推拉流平台视频点播有哪些技术特点?
  • 32.4 prometheus存储磁盘数据结构和存储参数
  • C7.【C++ Cont】范围for的使用和auto关键字
  • 联通云服务器部署老项目tomcat记录
  • 剪映自动批量替换视频、图片素材教程,视频批量复刻、混剪裂变等功能介绍
  • el-dialog中调用resetFields()方法重置表单报错
  • 分布式系统接口,如何避免重复提交
  • AI 声音:数字音频、语音识别、TTS 简介与使用示例
  • 【论文速读】| 人工智能驱动的网络威胁情报自动化
  • 什么是域名监控?
  • vue3 发送 axios 请求时没有接受到响应数据
  • 前端使用fontfaceobserver库实现字体设置
  • 【人工智能】Python常用库-PyTorch常用方法教程
  • Android Studio安装TalkX AI编程助手
  • #渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现02-永恒之蓝漏洞
  • gitlab自动打包python项目
  • 残差神经网络
  • mini-spring源码分析
  • 黑马程序员Java项目实战《苍穹外卖》Day01
  • uniapp开发支付宝小程序自定义tabbar样式异常