资讯详情

资讯详情

open_oura评分复现:如何用线性校准拟合Oura的0-100睡眠、准备度与活动分数

【免费下载链接】open_ouraA Rust toolkit for the Oura Ring (Gen 3/4/5): reverse-engineered BLE protocol, event decoders, and reimplemented>项目地址https://gitcode.com/gh_mirrors/op/open_oura点击查看免费下载open_oura 是一个面向 Oura RingGen 3/4/5的 Rust 工具包本项目用线性校准方法从一份 Oura 账户的 Trends 导出 CSV 中反推出 0–100 分制 Sleep Score、Readiness Score 与 Activity Score 的组合权重与子分数曲线并能在本地无云环境实时复算你的睡眠分数。整个过程不需要阅读反编译代码只要一条回归。为什么 Oura 的分数可以离线复现一个关键发现Oura 的三个 0–100 分数不是在云端算的。它们由手机里的原生ecore引擎libappecore.so在本地计算后上传云端只负责存储与同步。这意味着只要拿到分数公式就可以完全离线复算见 docs/algorithms/README.md。但权重表无法直接从反编译产物中干净读出于是项目采用了更稳妥的路径——校准calibrationTrends 导出 CSV 里每一天同时包含「最终分数」和「各贡献因子子分数」这正是回归分析需要的成对样本。整体思路分两层层内容拟合方法第一层组合权重最终分 round(Σ wᵢ·子分ᵢ / 100)权重和为 100无截距 OLS 线性回归第二层贡献因子曲线每个子分 fᵢ(原始指标)单调用 isotonic 回归非单调用分箱经验曲线多输入用线性拟合准备数据导出 Oura Trends CSV线性校准对样本量有要求建议300 天以上的完整导出项目验证用了 336–348 天登录 Oura 网页账户 → 设置 → 数据导出选择 Trends 趋势导出得到的 CSV 放到仓库的local/trends.csv或直接用--csv参数指定路径安装依赖python3 -m venv .venv .venv/bin/pip install -r requirements.txt如果需要拉取代码克隆地址为https://gitcode.com/gh_mirrors/op/open_oura。第一步线性回归恢复组合权重运行权重恢复脚本 tools/fit_scores.pypython tools/fit_scores.py local/trends.csv它把每个最终分数对它的贡献因子子分数做无截距回归np.linalg.lstsq回归系数和 ≈1.0 恰好证实了「加权平均」的结构。实测结果分数R²最大误差结论Sleep Score0.99870.8 分✅ 几乎精确Readiness Score0.96912.6 分◐ 线性 少量非线性Activity Score0.90411 分◐ 分段组合线性近似恢复出的睡眠分数权重Total Sleep 35%、Restfulness 15%、其余 5 项Efficiency / REM / Deep / Latency / Timing各 10%。完整的三张权重表见 docs/algorithms/score-weights.md。第二步拟合子分数曲线端到端复现睡眠分权重只是第一层——Trends 里的子分数本身也是原始指标睡眠时长、HRV、温度偏差等的确定性函数。tools/fit_sleep_score.py 为每个贡献因子挑选合适的曲线类型单调指标总睡眠时长、效率、REM、深睡→isotonic 回归Pool-Adjacent-Violators 算法留出集 R² 达 0.98–1.00非单调指标入睡潜伏期→ 分箱经验曲线它实际上是一条U 型曲线太短和太长都被扣分多输入指标Restfulness、Sleep Timing→ 线性拟合其中睡眠时相是一个昼夜节律峰值曲线中点落在 ~03:00 时得分最高另叠加 7 天节律稳定性项。留出 20% 天数的端到端验证结果Sleep Score 端到端 R²0.964RMSE 1.3884% 的天数误差不超过 ±1 分94% 不超过 ±3 分。残差集中在两个贡献因子上Restfulness15% 权重真实输入是 Oura 内部基于运动信号的 restful 时段计数CSV 中只有聚合值和 Sleep Timing 的个人节律理想点。这是数据粒度墙不是方法问题。三项分数总览与「基线墙」tools/fit_scores_all.py 把同一套方法扩展到全部三个分数并为基线相对型贡献因子HRV Balance、Resting HR、Sleep/Activity Balance构造「今日值 vs 近 14 天均值」的滞后特征分数ceiling权重×真实子分achieved权重×我方子分差距原因Sleep0.9980.969两个微观输入缺失Readiness0.9410.49~50% 权重依赖 14 天个人基线轨迹Activity0.8380.0624% 权重绑定个性化每日目标训练量是多日累积结论很清晰权重全部恢复正确ceiling 证明端到端差距几乎全部来自需要「累积历史」的贡献因子而非缺失的逻辑。校准一次持久本地实时评分流程校准只做一次结果持久化运行时不再依赖 CSV# 一次性校准trends 导出 → local/score_params.json python tools/calibrate_scores.py --csv local/trends.csv # 每晚原始事件 → 每日摘要 滚动基线写入 oura.db 的 daily_summary python tools/build_daily.py # 实时评分无需云端 python tools/score_sleep.py # 或 oura sleep-score python tools/score_readiness.py # 或 oura readiness-scoretools/calibrate_scores.py 只保留「戒指可推导」的驱动列LIVE_DRIVERS把权重 每条曲线序列化为local/score_params.json个人校准文件gitignore 在本地tools/score_sleep.py 用 SleepNet 生成睡眠图再走「曲线 → 子分 → 加权求和」三步例如最近一晚 471 分钟睡眠、91% 效率 →Sleep Score 82tools/score_readiness.py 从daily_summary读数历史不足 14 天时会自动标注「⚠ baselines still maturing — provisional」基线成熟后 Readiness 就和 Sleep 一样实时可用。管道细节见 docs/algorithms/daily-summaries-and-baselines.md。新手常见坑与排查清单 现象原因处理提示找不到 CSV未导出或路径不对放到local/trends.csv或传--csv拟合样本太少导出天数不足、有缺失行用 300 天的完整导出脚本会跳过不完整行列名对不上Oura 官方列名自带拼写错误Sleep Timin Score保持 CSV 原样不要「修正」表头Readiness 偏低不稳基线冷启动14 天每晚同步 重跑build_daily.py等基线成熟想换更长导出校准是个人生理参数重新运行calibrate_scores.py覆盖即可小结这条路径能走多远权重层三个分数全部恢复Sleep R²0.9987 近乎位级精确曲线层Sleep 端到端 R²0.969、84% 天数 ±1 分内日常使用完全够用实时层Sleep 今日即可实时复算Readiness 在 14 天基线成熟后同样实时Activity 因个性化目标与多日训练量仍属「权重已解、暂不实时」。对新手来说最大的收获是方法论当公式读不出来时用真实数据回归出它——一份 Trends 导出 两条回归命令就能得到你专属的 0–100 分模型。延伸阅读权重与曲线全表docs/algorithms/score-weights.md算法移植状态总览docs/algorithms/README.md每日摘要与基线机制docs/algorithms/daily-summaries-and-baselines.mdRust 客户端入口crates/README.md赞分享【免费下载链接】open_ouraA Rust toolkit for the Oura Ring (Gen 3/4/5): reverse-engineered BLE protocol, event decoders, and reimplemented>项目地址https://gitcode.com/gh_mirrors/op/open_oura点击查看免费下载相关推荐AISystem 开源课程五大模块走通 AI 系统全栈从芯片到推理引擎AISystem 开源课程五大模块走通 AI 系统全栈从芯片到推理引擎 AISystem 是一个开源的 AI 系统课程围绕 AI 芯片、AI 编译器、AI人工智能教程文档深度学习模型编译推理引擎OpenStrap Edge分析引擎揭秘1Hz心率数据如何变成睡眠分期、HRV与恢复度评分OpenStrap Edge分析引擎揭秘1Hz心率数据如何变成睡眠分期、HRV与恢复度评分 OpenStrap Edge 是一款本地优先的健康穿戴 App无期权定价模型校准终极指南用gs-quant实现市场数据拟合优度评估期权定价模型校准终极指南用gs quant实现市场数据拟合优度评估 在金融市场中期权定价模型校准是连接理论与实践的关键桥梁。本文将带你探索如何使用gs qu金融科技上一篇不用网格10 分钟出图Brush 高斯泼溅 3D 重建完整指南下一篇免费自托管的可视化数据库NocoDB 快速上手指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →