通过多项式回归解锁准确的预测

数据样本

date = [ { "study_time": 1, "salary":  350, "absences": 5, "city": "san francisco" }, { "study_time": 2, "salary": 1600, "absences": 4, "city": "london" }, { "study_time": 3, "salary": 2450, "absences": 3, "city": "paris" }, { "study_time": 4, "salary": 5150, "absences": 5, "city": "san francisco" }, { "study_time": 5, "salary": 5800, "absences": 4, "city": "london" }, { "study_time": 6, "salary": 6050, "absences": 3, "city": "paris" }]

这些值的估计工资是多少?

{ "study_time": 13, "salary": ???, "absences": 5, "city": "san francisco" }

结果

使用多项式回归这个序列的值13将是:24814
但正确的值是:19550
错误:5264

如果我预测位置 49 它将是:182441
但正确的值是:77150
错误:105291

这是产生级数的“隐藏算法”:

x = 0absences_base = 50salary_base = 1000data = []for i in range(50):    if x == 0:        x += 1        data.append({            "study_time": i + 1,            "salary": (i * salary_base + (300 * 2 * (i + 1))) - (5 * absences_base),            "absences": 5,            "city": "san francisco"        })    elif x == 1:        x += 1        data.append({            "study_time": i + 1,            "salary": (i * salary_base + (200 * 2 * (i + 1))) - (4 * absences_base),            "absences": 4,            "city": "london"        })    else:        x = 0        data.append({            "study_time": i + 1,            "salary": (i * salary_base + (100 * 2 * (i + 1))) - (3 * absences_base),            "absences": 3,            "city": "paris"        })for entry in data:    print(entry)
{'study_time': 1, 'salary': 350, 'absences': 5, 'city': 'san francisco'}{'study_time': 2, 'salary': 1600, 'absences': 4, 'city': 'london'}{'study_time': 3, 'salary': 2450, 'absences': 3, 'city': 'paris'}{'study_time': 4, 'salary': 5150, 'absences': 5, 'city': 'san francisco'}{'study_time': 5, 'salary': 5800, 'absences': 4, 'city': 'london'}{'study_time': 6, 'salary': 6050, 'absences': 3, 'city': 'paris'}{'study_time': 7, 'salary': 9950, 'absences': 5, 'city': 'san francisco'}{'study_time': 8, 'salary': 10000, 'absences': 4, 'city': 'london'}{'study_time': 9, 'salary': 9650, 'absences': 3, 'city': 'paris'}{'study_time': 10, 'salary': 14750, 'absences': 5, 'city': 'san francisco'}{'study_time': 11, 'salary': 14200, 'absences': 4, 'city': 'london'}{'study_time': 12, 'salary': 13250, 'absences': 3, 'city': 'paris'}{'study_time': 13, 'salary': 19550, 'absences': 5, 'city': 'san francisco'}

如何预测准确值?

多项式回归是一种统计技术,可用于建模和预测两个变量之间的关系。然而,在这种涉及多个变量(学习时间、工资、缺勤和城市)的情况下,多项式回归可能不足以捕获时间序列中的所有模式。

所讨论的问题是时间序列的经典示例,我们需要根据过去观察到的模式来预测未来值。

这个问题可以通过机器学习来解决

分析变量之间的所有关系测试多个假设以发现是什么产生了进展

此外,分析变量之间的所有关系并测试各种假设以发现产生进展的因素也很重要。这可能包括:

探索性分析:使用探索性分析技术更好地理解时间序列的性质并识别变量之间可能的模式或关系。

统计测试:进行统计测试以检查观察到的变量之间的关系是否具有显着性。

另一个解决方案是创建一个算法,用最基本的假设来做到这一点:

测试“关系和”对级数的影响: a+b->c、b+c->a、c+a->b、a+b+c->d 等(-> == 影响、产生)测试“关系减法”、“关系除法”、“关系平方”等

这个用于测试“关系运算”的算法,它将是一种直接机器学习(或显式机器学习)方法。这意味着该算法不使用先进的机器学习技术,而是实现规则和逻辑结构来学习时间序列模式。

仅测试基本假设,局限性是:

过度拟合:算法可能过度专注于训练数据集中的特定模式,而不能很好地推广到新数据。可扩展性有限:如果数据集非常大或复杂,算法可能无法实时测试所有可能的假设。

虽然机器学习模型可以:

学习复杂的模式并推广到新数据,而不需要明确指定它们。

但样本量又如何呢?

在寻找更复杂的解决方案之前,最好确保更简单的解决方案已经过充分的测试。

如果我们仅包含 3 行级数序列,我们可以使用多项式级数预测准确值

date = [ { "study_time": 1, "salary":  350, "absences": 5, "city": "san francisco" }, { "study_time": 2, "salary": 1600, "absences": 4, "city": "london" }, { "study_time": 3, "salary": 2450, "absences": 3, "city": "paris" }, { "study_time": 4, "salary": 5150, "absences": 5, "city": "san francisco" }, { "study_time": 5, "salary": 5800, "absences": 4, "city": "london" }, { "study_time": 6, "salary": 6050, "absences": 3, "city": "paris" }, {'study_time': 7, 'salary': 9950, 'absences': 5, 'city': 'san francisco'}, {'study_time': 8, 'salary': 10000, 'absences': 4, 'city': 'london'}, {'study_time': 9, 'salary': 9650, 'absences': 3, 'city': 'paris'}]

现在

study_time = 13 => 预计薪资:19550 study_time = 49 => 预计薪资:77150

所以这个问题可以用多项式回归来解决,只要数据样本足够

通过多项式回归解锁准确的预测

有趣的是,该模型只需要第 9 行之前的数据样本即可做出准确的预测。这表明时间序列中存在规则模式,可以用有限的数据量来捕获。确实有。

完整代码

import pandas as pdimport matplotlib.pyplot as pltfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.linear_model import LinearRegressiondata = pd.DataFrame({    "study_time": [1, 2, 3, 4, 5, 6, 7, 8, 9],    "absences": [5, 4, 3, 5, 4, 3, 5, 4, 3],    "San Francisco": [0, 1, 0, 0, 1, 0, 0, 1, 0], # dummy variables    "London": [0, 0, 1, 0, 0, 1, 0, 0, 1], # dummy variables    "Paris": [1, 0, 0, 1, 0, 0, 1, 0, 0], # dummy variables    "salary": [350, 1600, 2450, 5150, 5800, 6050, 9950, 10000, 9650]}) # Independent and dependent variablesX = data[["study_time", "absences", "San Francisco", "London", "Paris"]]y = data["salary"]# Creating polynomial characteristics of degree 2characteristics_2 = PolynomialFeatures(degree=2)x_pol_2 = characteristics_2.fit_transform(X)# Fitting the linear regression modelmodel2 = LinearRegression()model2.fit(x_pol_2, y)# New data provided for predictionnew_data = pd.DataFrame({    "study_time": [13],    "absences": [5],    "San Francisco": [0],    "London": [0],    "Paris": [1]})# Polynomial transformation of the new datanew_data_pol_2 = characteristics_2.transform(new_data)predicted_salary = model2.predict(new_data_pol_2)print("Predicted Salary:", int(predicted_salary[0]) )# Plotplt.subplot(1, 1, 1)plt.scatter(new_data["study_time"], predicted_salary, color='blue', label='Real Salary')plt.scatter(data["study_time"], y, color='blue', label='Real Salary')plt.scatter(data["study_time"], y_pol_2, color='red', label='Polynomial Fit', marker='x')plt.title("Polynomial Regression - Salary and Study Time")plt.xlabel("Study Time")plt.ylabel("Salary")plt.legend()plt.show()

以上就是通过多项式回归解锁准确的预测的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1348895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
利用 AI 促进内容创作:引入 AI 博客文章生成器
上一篇 2025年12月13日 12:25:12
DevOps 中脚本语言的力量:日复一日的 DevOps 工具系列
下一篇 2025年12月13日 12:25:27

相关推荐

  • laravel有哪些版本 laravel新手版本选择方法

    在面向初学者的 Laravel 框架版本选择指南中,本文深入探討了 Laravel 的版本差異,旨在協助初學者在眾多版本之間做出明智的選擇。我們將重點介紹每個版本的關鍵特徵、比較它們的優缺點,並提供有用的建議,幫助新手根據他們的技能水準和項目需求挑選最合適的 Laravel 版本。對於初學者來說,選…

    2026年8月30日
    000
  • SpringBoot项目启动失败:DataSource配置缺少url属性如何解决?

    SpringBoot项目启动失败:DataSource配置缺少URL属性 在使用Eclipse、SpringBoot和MyBatis开发项目时,启动失败问题时有发生。本文将针对一个常见的SpringBoot项目启动失败问题进行分析和解决,该问题表现为控制台输出“failed to configure…

    2026年8月30日
    100
  • 摆摊加短视频如何起号?短视频人设怎么做?

    摆摊也能火出圈?一条短视频让顾客排队到街角?当然可以!只要方法对,你的小摊一样能变身热门打卡地。 一、摆摊+短视频怎么快速起号? 1.明确内容方向: 开拍前先问自己:观众为什么看你?是因为你手艺绝活、价格亲民,还是故事感人?越细分的定位,越容易吸引精准粉丝。 2.呈现真实日常: 摆摊最打动人的是烟火…

    2026年8月30日
    000
  • 拼多多双11优惠券规则是什么?拼多多双11优惠券怎么用

    拼多多双11优惠券可通过搜索“ddd”抢券、参与三单挑战、每日签到、砸金蛋及开宝箱等方式获取,主要类型包括平台通用券、大牌专属券和跨店满减券,其中跨店满减为每满300减50,支持多店商品合并使用,优惠券可与百亿补贴叠加,且需在有效期内一次性结算使用,部分券种与店铺活动互斥。 如果您在拼多多双11大促…

    2026年8月30日
    000
  • 《赛博朋克2077》Switch 2版 官方操作小贴士来了

    《赛博朋克2077》Switch 2版 官方操作小贴士来了《赛博朋克2077》Switch 2版 官方操作小贴士来了《赛博朋克2077》Switch 2版 官方操作小贴士来了《赛博朋克2077》Switch 2版 官方操作小贴士来了

    《赛博朋克2077》成为switch 2首发阵容中销量最高的第三方作品。近日,《赛博朋克2077》官方推特发布了关于switch 2版本的一些操作技巧: 如果你更倾向于使用鼠标进行游戏,可以尝试拆下Joy-Con(右)手柄,将其当作鼠标来使用。 在陀螺仪模式下微调你的瞄准!通过倾斜Joy-Con(右…

    2026年8月30日 用户投稿
    000
  • 如何解决PHP项目中需要使用HeadlessChrome的需求?使用Composer可以轻松搞定!

    可以通过一下地址学习composer:学习地址 在开发一个需要自动化网页操作的php项目时,我遇到了一个棘手的问题:如何在php环境中启动和控制headless chrome实例。这个需求源于需要生成网页截图和pdf文档,以及执行复杂的javascript操作。然而,直接在php中操作chrome实…

    用户投稿 2026年8月30日
    000
  • 沙丘觉醒零载具搬家指南:复活点瞬移搬运黑科技

    在《沙丘觉醒》这片无情的沙漠中,没有飞行器就意味着每一次背着沉重物资往返于灼热的基地与遥远资源点之间,都是一场对意志力的极限挑战!别着急,今天教你一个堪称“空间折叠”的搬家绝技,让你无视距离瞬间转移资源库,连香料巨虫都赶不上你的节奏! 核心技巧:复活点瞬移搬运术 原理其实很简单:巧妙借助游戏中的复活…

    2026年8月30日
    500
  • win10怎么开启休眠功能_win10系统休眠功能开启方法

    首先通过命令提示符执行powercfg -h on启用休眠,其次在电源选项中勾选休眠设置,最后可修改注册表相关项强制开启,完成后重启电脑即可在电源选项中显示休眠按钮。 如果您发现Windows 10系统的电源选项中缺少“休眠”按钮,可能是因为该功能在系统中被默认禁用。以下是几种重新启用休眠功能的方法…

    2026年8月30日
    000
  • mysql游标有什么用

    在mysql中,游标有指针的作用,主要用于对查询数据库所返回的记录结果集进行遍历,以便进行相应的操作。 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。关系数据库管理系统实质是面向集合的,在MySQL中并没有一种描述表中单一记录的表达形式,除非使用WHERE子句来限制只有一条记…

    2026年8月30日
    900
  • 抖音精选联盟如何管理达人矩阵 抖音精选联盟达人资源的运营方法

    1.高效管理抖音精选联盟达人矩阵的核心是建立以数据驱动的分级体系、精准匹配产品与达人、设计多元激励机制并强化沟通反馈;2.筛选达人应注重内容垂直度、互动质量与粉丝粘性,优先选择与产品基因匹配的潜力达人,并通过主动搜索和mcn合作拓展招募渠道;3.提升转化率需提供产品赋能与创意支持,尊重达人创作风格,…

    2026年8月30日
    000
  • iPhone11pro max将应用隐藏的具体操作方法

    iPhone11pro max将应用隐藏的具体操作方法iPhone11pro max将应用隐藏的具体操作方法iPhone11pro max将应用隐藏的具体操作方法iPhone11pro max将应用隐藏的具体操作方法

    php小编柚子为你揭秘iphone 11 pro max的隐藏操作方法。这款顶级旗舰手机拥有众多强大功能,但很多用户可能不知道如何充分利用它们。在本篇文章中,我们将分享一些iphone 11 pro max的隐藏操作技巧,帮助你更好地使用这款手机。无论是拍照、设置、通知中心还是多任务处理,我们都将给…

    2026年8月30日 用户投稿
    100
  • ​​WiFi密码忘了怎么办?通过192.168.1.1重置教程​​

    忘记wifi密码时,可先通过连接该网络的设备访问路由器管理界面查看或重置密码;2. 确认设备已连接wifi后,查找路由器ip地址(如192.168.1.1或192.168.0.1),在浏览器输入并登录(用户名密码可查看路由器背面或尝试默认组合);3. 登录后进入“无线设置”或“wifi设置”选项,查…

    2026年8月30日
    000
  • 红帽linux是什么?

    红帽即“Red Hat”,是美国一家以开发、贩售Linux包并提供技术服务为业务内容的企业,红帽Linux是Red Hat设计的基于Linux的操作系统,而红帽linux最后一个版本是9.0,已经停止支持了。 本篇文章将和大家讲述什么是红帽Linux,感兴趣的朋友可以了解一下。 红帽(英语:Red …

    2026年8月30日
    000
  • 中科曙光联手中科星图,共建开放普惠“太空算网”

    伴随空天信息产业的迅猛发展,太空计算正逐步成为全球战略新兴技术竞争的关键领域。在此趋势下,7月8日,中科曙光与中科星图在合肥举行的“2025空天信息大会”上正式签署了《太空计算领域的合作开发框架协议》。根据协议内容,双方将在技术研发、太空算网建设等方面展开深入合作,共同推动“太空计算”技术的创新与实…

    2026年8月30日
    100
  • laravel怎么查看版本号 laravel查看版本号方法

    Laravel框架内置了多种方法来方便地查看其版本号,满足开发者的不同需求。本文将探讨这些方法,包括使用Composer命令行工具、访问.env文件或通过PHP代码获取版本信息。这些方法对于维护和管理Laravel应用程序的版本控制至关重要。 如何查看 laravel 版本号 Laravel 是一个…

    2026年8月30日
    000
  • Mac玩《‎白荆回廊》攻略:苹果电脑畅玩iOS游戏详细教程!

    可以在Mac上玩iOS版《白荆回廊》,通过PlayCover侧载方案。具体步骤:1、下载安装PlayCover;2、添加游戏源(https://decrypt.day/library/data.json),搜索并安装游戏;3、自定义键位,如使用WASD键控制角色移动,鼠标控制视角,Q、E、R键释放技…

    2026年8月30日
    000
  • 怎么查看显卡温度_如何查看显卡温度

    显卡温度过高会影响性能并可能损坏硬件,需通过多种方法监控温度。1. 使用显卡驱动自带工具:nvidia的geforce experience和amd的radeon software可实时显示温度、风扇转速等信息。2. 利用第三方软件:如msi afterburner和hwmonitor,能提供更全面…

    2026年8月30日
    100
  • 天猫小二怎么介入?天猫小二怎么介入店铺

    买家或卖家在无法协商解决纠纷时,可申请天猫小二介入。买家通过订单页面提交退款争议并上传凭证,进入3天举证期后由平台裁决;卖家可在遭遇异常订单时,通过商家中心提交介入申请并提供证据;针对非交易问题,可通过千牛工作台联系人工客服,转接对应小二处理运营事项。 如果您在处理天猫平台的交易纠纷或店铺运营问题时…

    2026年8月30日
    000
  • 哔哩哔哩b站官网链接 b站网页版进入入口

    哔哩哔哩官网链接是https://www.bilibili.com,平台涵盖动画、游戏、音乐等领域,支持用户上传视频,形成多样化内容生态。 哔哩哔哩b站官网链接在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来哔哩哔哩b站官网链接,感兴趣的网友一起随小编来瞧瞧吧! https://www.b…

    2026年8月30日
    000
  • iPhone照片设置密码的方法介绍

    iPhone照片设置密码的方法介绍iPhone照片设置密码的方法介绍iPhone照片设置密码的方法介绍iPhone照片设置密码的方法介绍

    php小编苹果将为大家介绍iphone照片设置密码的方法。手机中的照片是我们的私密信息,为了保护隐私,设置密码是非常必要的。iphone提供了多种方式来保护照片,其中最常用的是设置屏幕解锁密码,通过这种方式可以有效地防止他人未经允许查看我们的照片。接下来,我们将详细介绍如何在iphone上设置照片的…

    2026年8月30日 用户投稿
    200

发表回复

登录后才能评论
关注微信