স্মুথ টাইম সিরিজের ডেটা


14

আমি এমন একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করছি যা ঘুমের সময় অ্যাকসিলোমিটার ডেটা রেকর্ড করে, যাতে ঘুমের প্রবণতাগুলি বিশ্লেষণ করতে এবং বিকল্পভাবে হালকা ঘুমের সময় কোনও পছন্দসই সময়ের কাছে ব্যবহারকারীকে জাগ্রত করা যায়।

আমি ইতিমধ্যে এমন উপাদান তৈরি করেছি যা ডেটা সংগ্রহ করে এবং সঞ্চয় করে পাশাপাশি অ্যালার্ম। আমি এখনও সত্য তথ্যবহুল এবং সুস্পষ্ট উপায়ে ঘুমের তথ্য প্রদর্শন এবং সংরক্ষণের জন্তুটিকে মোকাবেলা করতে চাই, এটি বিশ্লেষণকেও প্রাধান্য দেয়।

কয়েকটি ছবি দু'হাজার শব্দ বলে: (কম প্রতিনিধির কারণে আমি কেবল একটি লিঙ্ক পোস্ট করতে পারি)

এখানে অসম্পূর্ণ ডেটা, চলনের যোগফল, 30 সেকেন্ডের বিরতিতে সংগৃহীত

এবং একই ডেটা, আমার চলমান গড় স্মুথিংয়ের নিজস্ব প্রকাশ দ্বারা ধীরে ধীরে

সম্পাদনা করুন) উভয় চার্টের ক্রমাঙ্কন প্রতিফলিত হয় - একটি সর্বনিম্ন 'শব্দ' ফিল্টার এবং সর্বাধিক কাট অফ ফিল্টার, পাশাপাশি একটি অ্যালার্ম ট্রিগার স্তর (সাদা রেখা)

দুর্ভাগ্যক্রমে, এর মধ্যে দুটিও অনুকূল সমাধান নয় - প্রথমটি গড় ব্যবহারকারীর জন্য বুঝতে কিছুটা কঠিন, এবং দ্বিতীয়টি, যা বোঝা সহজ, আসলে কী চলছে তা অনেকটা আড়াল করে। বিশেষত গড় গতিবেগের স্পাইকের বিশদটি সরিয়ে দেয়- এবং আমি মনে করি সেগুলি অর্থবহ হতে পারে।

তাহলে এই চার্টগুলি এত গুরুত্বপূর্ণ কেন? এই সময়-সিরিজটি ব্যবহারকারীকে প্রতিক্রিয়া হিসাবে রাতারাতি প্রদর্শিত হয় এবং পরে পর্যালোচনা / বিশ্লেষণের জন্য সংরক্ষণ করা হবে। স্মুথিং আদর্শভাবে মেমরির ব্যয় (র‌্যাম এবং স্টোরেজ উভয়ই) কমিয়ে দেবে এবং এই সংস্থান-অনাহারযুক্ত ফোন / ডিভাইসগুলিতে আরও দ্রুত রেন্ডারিং তৈরি করবে।

স্পষ্টতই ডেটা মসৃণ করার আরও ভাল উপায় আছে- আমার কিছু অস্পষ্ট ধারণা রয়েছে যেমন আন্দোলনের 'তীব্র' পরিবর্তনগুলি সনাক্ত করার জন্য লিনিয়ার রিগ্রেশন ব্যবহার করা এবং আমার চলন্ত গড় মসৃণকরণ অনুসারে পরিবর্তন করা। হেডফিস্টকে এমন কোনও বিষয়ে ডুব দেওয়ার আগে আমার আরও কিছু নির্দেশিকা এবং ইনপুট দরকার যা আরও অনুকূলভাবে সমাধান করা যেতে পারে।

ধন্যবাদ!

উত্তর:


16

প্রথমত, সংক্ষেপণ এবং বিশ্লেষণ / উপস্থাপনের প্রয়োজনীয়তাগুলি অগত্যা একই নয় - প্রকৃতপক্ষে বিশ্লেষণের জন্য আপনি সমস্ত কাঁচা তথ্য রাখতে চান এবং এটি বিভিন্ন উপায়ে টুকরো টুকরো করে কাটানোর ক্ষমতা রাখতে পারে have এবং আপনার জন্য কী সবচেয়ে ভাল কাজ করে তা আপনি যা থেকে বেরিয়ে আসতে চান তার উপর নির্ভর করে। তবে বেশ কয়েকটি মানক কৌশল রয়েছে যা আপনি চেষ্টা করতে পারেন:

  • কাঁচা ডেটার পরিবর্তে পার্থক্য ব্যবহার করুন
  • নিম্ন-স্তরের শব্দটি সরাতে থ্রেশোল্ডিং ব্যবহার করুন। (ছোট পরিবর্তনগুলি উপেক্ষা করার জন্য পৃথকীকরণের সাথে একত্রিত করুন))
  • চলাফেরার চেয়ে ক্রিয়াকলাপ স্তর ক্যাপচার করতে গড়ের চেয়ে কিছু সময়ের উইন্ডোতে বৈকল্পিক ব্যবহার করুন
  • স্থির বিরতি থেকে পরিবর্তনশীল দৈর্ঘ্যের রানগুলিতে টাইম বেস পরিবর্তন করুন এবং পরিবর্তনের একক ডেটা পয়েন্ট ক্রমগুলিতে জমা হন যার জন্য কিছু মানদণ্ড ধারণ করে (যেমন, কিছু দিকের মধ্যে একই দিকের পার্থক্য)
  • বাস্তব মানগুলি থেকে অর্ডিনালে ডেটা রূপান্তর করুন (উদাহরণস্বরূপ নিম্ন, মাঝারি, উচ্চ); আপনি পৃথক নমুনাগুলির চেয়ে সময় বিনাতেও এটি করতে পারেন - যেমন, প্রতিটি 5 মিনিটের প্রসারিতের জন্য ক্রিয়াকলাপ স্তর
  • আপনার চলমান গড়ের চেয়ে আরও সূক্ষ্মভাবে মসৃণ করতে বা তীক্ষ্ণ পরিবর্তনগুলির মতো আগ্রহের বৈশিষ্ট্যগুলি চয়ন করতে একটি উপযুক্ত কনভোলিউশন কার্নেল * ব্যবহার করুন ।
  • পাওয়ার স্পেকট্রাম গণনা করতে একটি এফএফটি লাইব্রেরি ব্যবহার করুন

আপনার উদ্দেশ্যগুলির জন্য শেষটি কিছুটা ব্যয়বহুল হতে পারে তবে সম্ভবত "ঘুমের ছড়াছড়ি" এবং এই জাতীয় শর্তাবলী আপনাকে কিছু খুব দরকারী উপস্থাপনা বিকল্প দেয়। (অ্যান্ড্রয়েড সম্পর্কে আমি আর কিছুই জানি না তবে এটি উপলব্ধিযোগ্য যে কিছু / অনেক / সমস্ত হ্যান্ডসেটগুলি ডিএসপি হার্ডওয়্যারটিতে তৈরি করা হতে পারে যা আপনি নিতে পারেন))


* ডিজিটাল সিগন্যাল প্রসেসিংয়ের ক্ষেত্রে কেন্দ্রীয় কনভোলশনটি কীভাবে দেওয়া তা দেওয়া, অনলাইনে অ্যাক্সেসযোগ্য পরিচয় পাওয়া আশ্চর্যজনকভাবে কঠিন। বা কমপক্ষে 3 মিনিটের মধ্যে গুগল করা। পরামর্শ স্বাগত!


10

স্প্লাইনস এবং লোস সহ অনেকগুলি ননপ্যারমেট্রিক স্মুথিং অ্যালগরিদম রয়েছে। তবে তারা হঠাৎ পরিবর্তনগুলিও মসৃণ করবে। ফিল্টার কম পাস করবে। আমি মনে করি আপনার একটি ওয়েভলেট-ভিত্তিক স্মুথের প্রয়োজন হতে পারে যা হঠাৎ লাফ দিতে পারে তবে তবুও শব্দটি মসৃণ হয়।

পরীক্ষা করে দেখুন Percival এবং Walden, (2000) এবং সংশ্লিষ্ট আর প্যাকেজ । যদিও আপনি একটি জাভা সমাধান চান, আর প্যাকেজের আলগোরিদিমগুলি মুক্ত-উত্স এবং আপনি সেগুলি অনুবাদ করতে সক্ষম হতে পারেন।


3

আপনি যা জিজ্ঞাসা করছেন এটি এটি কিছুটা স্পর্শকাতর, তবে কলম্যান ফিল্টারটি একবার দেখে নেওয়া ভাল।


1

স্যাভিটস্কি-গোলে স্মুথিংয়ের উত্তম উত্তর হতে পারে। এটি একটি স্লাইডিং টাইম উইন্ডো (সেই ডেটার উপরে একটি সমঝোতা) দিয়ে স্মুথ করা কমপক্ষে স্কোয়ারগুলির একটি অত্যন্ত কার্যকর বাস্তবায়ন যা স্থির স্থায়ীদের দ্বারা প্রতিটি সময় উইন্ডোতে কেবলমাত্র ডেটা গুণতে আসে। আপনি মান, ডেরিভেটিভস, দ্বিতীয় ডেরিভেটিভস এবং উচ্চতর ফিট করতে পারেন।

স্লাইডিং টাইম উইন্ডোর আকার এবং time সময়ের উইন্ডোতে বহুপক্ষীয় ফিটগুলির ডিগ্রির উপর ভিত্তি করে আপনি ফলাফলগুলি কতটা স্পিকি পছন্দ করবেন তা বেছে নিন। এটি মূলত ক্রোমাটোগ্রাফির জন্য তৈরি করা হয়েছিল, যেখানে শিখরগুলি ফলাফলের অপরিহার্য অঙ্গ। এস জি স্মুথিংয়ের একটি কাঙ্ক্ষিত সম্পত্তি হ'ল চূড়ার অবস্থানগুলি সংরক্ষণ করা হয়। উদাহরণস্বরূপ, ঘনকীয় বক্ররেখার সাথে একটি 5 থেকে 11 পয়েন্টের উইন্ডো শব্দটি কেটে দেয় তবে এখনও শিখর সংরক্ষণ করে।

উইকিপিডিয়ায় একটি ভাল নিবন্ধ রয়েছে, যদিও এটিকে সাভিটস্কি-গোলে ফিল্টার হিসাবে উল্লেখ করা হয় (সিস্টেম নিয়ন্ত্রণ তত্ত্ব এবং সময় সিরিজ বিশ্লেষণ থেকে সাধারণ পরিভাষায় হালকা সহিংসতা করা, পাশাপাশি মূল কাগজ, যেখানে একে সঠিকভাবে স্মুথিং বলা হয়)। দ্বিতীয় সচেতন অনুমানের সূত্রগুলির জন্য উইকিপিডিয়া নিবন্ধে (একটি তর্ক-বিতর্ক) ত্রুটি রয়েছে তাও সচেতন থাকুন - সেই নিবন্ধটির জন্য টক বিভাগটি দেখুন। সম্পাদনা: উইকিপিডিয়া নিবন্ধটি ঠিক করা হয়েছিল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.