নম্পি মুভিং এভারেজ

Nampi Mubhim Ebhareja



আমাদের টপিক শুরু করার আগে চলুন জেনে নেওয়া যাক মুভিং এভারেজ কী। পরিসংখ্যানে, একটি চলমান গড় হল ডেটা পয়েন্ট গণনা এবং বিশ্লেষণ করার একটি কৌশল। এটি একটি সম্পূর্ণ ডেটাসেট থেকে গড়ে বিভিন্ন উপসেটের একটি সিরিজ তৈরি করে ডেটা পয়েন্ট গণনা করে। সুতরাং, একটি চলমান গড় হল একটি পরিমাপ যা সময়ের সাথে সাথে একটি তথ্য সিরিজের সাধারণ পরিবর্তনকে ধরে। মুভিং হল সবচেয়ে নমনীয় এবং প্রায়শই ব্যবহৃত প্রযুক্তিগত বিশ্লেষণ সূচকগুলির মধ্যে একটি। যেহেতু এটি ব্যবহার করা খুবই সহজ, পেশাদার বিনিয়োগকারীরা এটিকে পরিসংখ্যানে ডেটার একটি নির্দিষ্ট সেটের মাধ্যম হিসাবে ব্যবহার করে। আমরা দৈনিক বা মিনিটের ডেটা ব্যবহার করে একটি স্বল্প সময়ের মধ্যে একটি চলমান গড় গণনা করতে পারি৷ উদাহরণস্বরূপ: 10-দিনের চলমান গড় নির্ধারণ করার সময়, আমাদের উদাহরণে, আমরা পূর্ববর্তী দশটির যেকোনো একটি থেকে শেষের মূল্যগুলি যোগ করব দিন এবং ফলাফলকে দশ দ্বারা ভাগ করুন। পরের দিন, আমরা শেষ দশ দিনের মূল্যও গণনা করব যার অর্থ আমরা প্রথম দিনের দাম গণনা করব না। এটা বরং গতকাল আমাদের মূল্য দ্বারা প্রতিস্থাপিত হবে. প্রতিটি চলমান দিনের সাথে এই পদ্ধতিতে ডেটা পরিবর্তিত হয়, এই কারণে এটি চলন্ত গড় হিসাবে পরিচিত। মুভিং এভারেজের উদ্দেশ্য হল একটি প্রবণতার সূচনা নির্ধারণ করা, তারপরে এর অগ্রগতি অনুসরণ করা এবং এটি ঘটলে তার বিপরীতে রিপোর্ট করা। চলমান গড় গণনা করার সূত্রটি হল Ft = (Dt1+Dt2+Dt3…+Dtn)/n। যেখানে Dt হল ডিমান্ড টি পিরিয়ড এবং Ft হল পূর্বাভাস টি সময়ের মধ্যে।

বাক্য গঠন:

আমরা বিভিন্ন উপায়ে চলমান গড় গণনা করতে পারি যা নিম্নরূপ:

পদ্ধতি 1:

NumPy. cumsum ( )

এটি প্রদত্ত অ্যারের উপাদানগুলির যোগফল প্রদান করে। আমরা cumsum() এর আউটপুটকে অ্যারের আকার দ্বারা ভাগ করে চলমান গড় গণনা করতে পারি।







পদ্ধতি 2:

NumPy. এবং . গড় ( )

এটি নিম্নলিখিত পরামিতি আছে.



একটি: অ্যারে আকারে ডেটা যা গড় করা হবে।



axis: এর ডেটা টাইপ হল int এবং এটি একটি ঐচ্ছিক পরামিতি।





ওজন: এটি একটি অ্যারে এবং ঐচ্ছিক পরামিতিও। এটি 1-D আকারের মতো একই আকারের হতে পারে। এক মাত্রিক ক্ষেত্রে, এটি অবশ্যই 'a' অ্যারের সমান দৈর্ঘ্য থাকতে হবে।

মনে রাখবেন যে চলমান গড় গণনা করার জন্য NumPy তে কোনও স্ট্যান্ডার্ড ফাংশন নেই বলে মনে হচ্ছে তাই এটি অন্য কিছু পদ্ধতি দ্বারা করা যেতে পারে।



পদ্ধতি 3:

চলমান গড় গণনা করতে ব্যবহার করা যেতে পারে এমন আরেকটি পদ্ধতি হল:

যেমন convolve ( , ভিতরে , মোড = 'সম্পূর্ণ' )

এই সিনট্যাক্সে, a হল প্রথম ইনপুট ডাইমেনশনাল এবং v হল দ্বিতীয় ইনপুট ডাইমেনশনাল ভ্যালু। মোড হল ঐচ্ছিক মান, এটি সম্পূর্ণ, একই এবং বৈধ হতে পারে।

উদাহরণ # 01:

এখন, নুম্পিতে চলমান গড় সম্পর্কে আরও ব্যাখ্যা করার জন্য একটি উদাহরণ দেওয়া যাক। এই উদাহরণে, আমরা NumPy এর কনভল ফাংশন সহ একটি অ্যারের চলন্ত গড় বের করব। সুতরাং, আমরা 1,2,3,4,5 এর উপাদান হিসাবে একটি অ্যারে 'a' নেব। এখন, আমরা np.convolve ফাংশনকে কল করব এবং এর আউটপুট আমাদের 'b' ভেরিয়েবলে সংরক্ষণ করব। এর পরে, আমরা আমাদের ভেরিয়েবল 'b' এর মান প্রিন্ট করব। এই ফাংশনটি আমাদের ইনপুট অ্যারের চলমান যোগফল গণনা করবে। আমাদের আউটপুট সঠিক কি না তা দেখার জন্য আমরা আউটপুট প্রিন্ট করব।

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

সেই উদ্দেশ্যে, আমরা ডিনোমিনেটরের জন্য আরেকটি পরিবর্তনশীল 'ডিনম' শুরু করেছি। রেঞ্জ ট্রিক ব্যবহার করে তালিকা বোঝার জন্য এটি সহজ। আমাদের অ্যারেতে পাঁচটি ভিন্ন উপাদান রয়েছে তাই প্রতিটি জায়গায় নমুনার সংখ্যা এক থেকে পাঁচে যাবে এবং তারপর পাঁচ থেকে এক-এ নেমে আসবে। সুতরাং, আমরা দুটি তালিকা একসাথে যোগ করব এবং আমরা সেগুলিকে আমাদের 'ডেনম' প্যারামিটারে সংরক্ষণ করব। এখন, আমরা এই ভেরিয়েবলটি প্রিন্ট করব চেক করার জন্য যে সিস্টেমটি আমাদের সত্যিকারের ডিনোমিনেটর দিয়েছে কি না। এর পরে, আমরা আমাদের চলমান যোগফলকে হরগুলির সাথে ভাগ করব এবং আউটপুটটিকে 'c' ভেরিয়েবলে সংরক্ষণ করে প্রিন্ট করব। ফলাফল পরীক্ষা করতে আমাদের কোড নির্বাহ করা যাক।

আমদানি নম্র হিসাবে যেমন

= [ 1 , দুই , 3 , 4 , 5 ]

= যেমন convolve ( , যেমন ones_like ( ) )

ছাপা ( 'চলমান সমষ্টি' , )

নাম = তালিকা ( পরিসীমা ( 1 , 5 ) ) + তালিকা ( পরিসীমা ( 5 , 0 , - 1 ) )

ছাপা ( 'ডিনোমিনেটর' , নাম )

= যেমন convolve ( , যেমন ones_like ( ) ) / নাম

ছাপা ( 'চলন্ত গড় ' , )

আমাদের কোড সফলভাবে কার্যকর করার পরে, আমরা নিম্নলিখিত আউটপুট পাব। প্রথম লাইনে, আমরা 'মুভিং সাম' প্রিন্ট করেছি। আমরা দেখতে পাচ্ছি যে আমাদের শুরুতে '1' এবং অ্যারের শেষে '5' আছে, ঠিক যেমনটি আমাদের আসল অ্যারেতে ছিল। বাকি সংখ্যাগুলো আমাদের অ্যারের বিভিন্ন উপাদানের যোগফল।

উদাহরণস্বরূপ, অ্যারের তৃতীয় সূচকে ছয়টি আসে আমাদের ইনপুট অ্যারে থেকে 1,2 এবং 3 যোগ করে। চতুর্থ সূচকে দশ আসে 1,2,3 এবং 4 থেকে। পনেরটি আসে সমস্ত সংখ্যাকে একত্রিত করে, ইত্যাদি। এখন, আমাদের আউটপুটের দ্বিতীয় লাইনে, আমরা আমাদের অ্যারের হর প্রিন্ট করেছি।

আমাদের আউটপুট থেকে, আমরা দেখতে পাচ্ছি যে সমস্ত হর সঠিক, যার মানে হল যে আমরা তাদের চলমান সমষ্টি অ্যারে দিয়ে ভাগ করতে পারি। এখন, আউটপুটের শেষ লাইনে যান। শেষ লাইনে, আমরা দেখতে পাচ্ছি যে আমাদের মুভিং অ্যাভারেজ অ্যারের প্রথম উপাদান হল 1। 1-এর গড় হল 1 তাই আমাদের প্রথম উপাদানটি সঠিক। 1+2/2 এর গড় হবে 1.5। আমরা দেখতে পাচ্ছি যে আমাদের আউটপুট অ্যারের দ্বিতীয় উপাদানটি 1.5 তাই দ্বিতীয় গড়টিও সঠিক। 1,2,3 এর গড় হবে 6/3=2। এটি আমাদের আউটপুটকেও সঠিক করে তোলে। সুতরাং, আউটপুট থেকে, আমরা বলতে পারি যে আমরা সফলভাবে একটি অ্যারের চলন্ত গড় গণনা করেছি।

উপসংহার

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