今日、私はウエラリングの睡眠スコアデータを掘り下げ、重要な質問を促しました:この問題はAIを必要としますか、それとも単純な式で十分ですか?
アクティビティトラッキングとウエラリング
私はデータ駆動型の健康愛好家で、FitbitやGarminなどのフィットネストラッカーを利用しています。 しかし、毎日の摩耗のために、私はその控えめなデザインのためにウランリングを好みます。 睡眠追跡は重要な機能であり、睡眠スコアを調査に値します。 (馴染みのない人のために、Ouraの睡眠スコアは彼らのブログで詳述されています。)
謎めいた睡眠スコアウエラの欠点は、そのペイウォールされた洞察です。 FitbitやGarminの包括的なダッシュボードとは異なり、無料版には睡眠スコアのみが表示されます。 これは疑問を提起します:この睡眠スコアを特別なものにし、サブスクリプションに価値があるのは何ですか?
仮説:単純な相関
データサイエンティストとしての私の最初の仮説は簡単でした。深い睡眠期間が高く、平均心拍数が低いことは、より良い睡眠スコアと相関しています。 そんなに簡単ですか?調べてみましょう。
データの取得と処理
開発者APIを介してOuraデータにアクセスし、睡眠データを取得し、JSONファイルとして保存しました。
このデータは、簡単にクエリをするためにElasticSearchでインデックス化されました。 JSON構造はこのプロセスを簡素化し、追加のマッピングやデータのクリーニングを必要としませんでした。
def get_data(type): url = 'https://api.ouraring.com/v2/usercollection/' + type params={ 'start_date': '2021-11-01', 'end_date': '2025-01-01' } headers = { 'Authorization': 'Bearer ' + auth_token } response = requests.request('GET', url, headers=headers, params=params) return response.json()["data"] data = get_data("sleep") with open('oura_data_sleep.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)実験:簡単なクエリ
client = Elasticsearch( cloud_id=ELASTIC_CLOUD_ID, api_key=ELASTIC_API_KEY ) index_name = 'oura-history-sleep' # ... (Elasticsearch index creation and data loading code) ...私の実験には、仮説をテストするための簡単なクエリが含まれていました。 私は最初に最高の睡眠スコアで日を並べ替えました:
これらの高得点を調べると、深い眠りと心拍数に一貫したパターンが明らかになりました。 次に、1.5時間以上の深い睡眠と60 bpm未満の心拍数のためのElasticSearchクエリフィルタリングを作成しました。
response = client.search(index = index_name, sort="readiness.score:desc") # ... (Code to print day and sleep score) ...
query = { "range" : { "deep_sleep_duration" : { "gte" : 1.5*3600 } }, "range" : { "average_heart_rate":{ "lte" : 60 } } } response = client.search(index = index_name, query=query, sort="rem_sleep_duration:desc")
結果は、初期の高スコア日と強く相関していました。 完璧ではありませんが、これは単純な式の予測力を示しています。 さらなるキバナの視覚化(以下を参照)は、この接続を強化します。
重要性
AI周辺の誇大広告では、よりシンプルなソリューションを見落とすのは簡単です。 しばしば複雑なAIの成果として提示されるこの睡眠スコアは、本質的に簡単なフォーミュラに基づいています。これは、より単純な方法が十分である場合に理解することの重要性を強調します。 これは、データサイエンスの基礎と直感的なモデリングの永続的な価値を強調しています。 高度なテクノロジーは印象的ですが、それを使用することはいつ が同様に重要です。
こちらの完全なコードノートブックを参照してください。以上が私のウエラの睡眠スコアを分析します - それはAIですか、それとも数学ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonListsareimplementedasdynamicarrays、notlinkedlists.1)they restorediguourmemoryblocks、それはパフォーマンスに影響を与えることに影響を与えます

pythonoffersfourmainmethodstoremoveelements fromalist:1)removesthefirstoccurrenceofavalue、2)pop(index(index(index)removes regvess returnsaspecifiedindex、3)delstatementremoveselementselementsbyindexorseLice、および4)clear()

toresolvea "許可denided" errors whenrunningascript、sofflowthesesteps:1)checkandadaddadaddadadaddaddadadadaddadaddadaddadaddaddaddaddaddadaddadaddaddaddaddadaddaddaddadadaddadaddadaddadadisionsisingmod xmyscript.shtomakeitexexutable.2)

ArraySarecrucialinpythonimageprocessing asheyenable efficientmanipulation analysisofimagedata.1)画像anverttonumpyArrays、with grayscaleimagesasas2darraysandcolorimagesas.

ArsareSareBetterElement-WiseOperationsduetof of ActassandoptimizedImplementations.1)ArrayshaveContigUousMoryFordiRectAccess.2)ListSareFlexibleButSlowerDueTopotentialDynamicresizizizizing.3)

Numpyの配列全体の数学的操作は、ベクトル化された操作を通じて効率的に実装できます。 1)追加(arr 2)などの簡単な演算子を使用して、配列で操作を実行します。 2)Numpyは、基礎となるC言語ライブラリを使用して、コンピューティング速度を向上させます。 3)乗算、分割、指数などの複雑な操作を実行できます。 4)放送操作に注意して、配列の形状が互換性があることを確認します。 5)np.sum()などのnumpy関数を使用すると、パフォーマンスが大幅に向上する可能性があります。

Pythonでは、要素をリストに挿入するための2つの主要な方法があります。1)挿入(インデックス、値)メソッドを使用して、指定されたインデックスに要素を挿入できますが、大きなリストの先頭に挿入することは非効率的です。 2)Append(Value)メソッドを使用して、リストの最後に要素を追加します。これは非常に効率的です。大規模なリストの場合、append()を使用するか、dequeまたはnumpy配列を使用してパフォーマンスを最適化することを検討することをお勧めします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール
