আমি যে অ্যালগরিদমটি ডিজাইন করছি তাতে আমার পরবর্তী পদক্ষেপটি কী হতে হবে সে সম্পর্কে আমার সহায়তা দরকার।
এনডিএগুলির কারণে, আমি অনেক কিছুই প্রকাশ করতে পারি না, তবে আমি জেনেরিক এবং বোধগম্য হওয়ার চেষ্টা করব।
মূলত, অ্যালগরিদমে বেশ কয়েকটি পদক্ষেপের পরে আমার কাছে এটি রয়েছে:
আমার কাছে থাকা প্রতিটি গ্রাহকের জন্য এবং তারা এক মাসের মধ্যে যে ইভেন্টগুলি করে, প্রথম পদক্ষেপের সময় আমি ইভেন্টগুলিকে বেশ কয়েকটি বিভাগে ক্লাস্টার করেছি (প্রতিটি গ্রাহকের ইভেন্টগুলিকে বিভাগ থেকে বিভক্ত করা হবে যা 1 থেকে 25 এর মধ্যে x হতে হবে, সাধারণত প্রথম বিভাগগুলিতে অন্যদের তুলনায় ইভেন্টগুলির ঘনত্ব বেশি থাকে)।
প্রতিটি বিভাগ এবং গ্রাহকের জন্য আমি প্রতি ঘন্টা ইভেন্টগুলিকে একীভূত করে একটি টাইম সিরিজ তৈরি করেছি (এই ইভেন্টগুলি কখন করা হচ্ছে তার নিদর্শন পাওয়া)। এছাড়াও আমি এক মাসের বেশি দিনের সংখ্যা (30 দিন) যে লোকটি কমপক্ষে একটি ইভেন্ট সম্পাদন করে এবং কমপক্ষে একটি ইভেন্টের সাথে কমপক্ষে একটি ইভেন্টের সাথে কমপক্ষে একটি ইভেন্টের সাথে কতগুলি দিন ব্যবহার করে যাচ্ছি? ইভেন্ট (সমস্ত ক্লাস্টারকে একত্রিত করে)। প্রথমটি আমাকে গ্রাহক মাসে কতটা সক্রিয় তার একটি অনুপাত দেয় এবং দ্বিতীয়টি অন্যটির বিপরীতে বিভাগটি ওজন করে।
চূড়ান্ত টেবিলটি দেখতে এমন দেখাচ্ছে
|*Identifier*| *firstCat* | *feature1* | *feature2* | { *(TIME SERIES)* }
CustomerID | ClusterID | DaysOver30 | DaysOverTotal | Events9AM Events10AM ...
xx | 1 | 0,69 | 0,72 | 0,2 0,13 ...
xx | 2 | 0,11 | 0,28 | 0,1 0,45 ...
xy | 1 | 0,23 | 0,88 | 0,00 0,60 ...
xy | 2 | 0,11 | 0,08 | 1,00 0,00 ...
xy | 3 | 0,10 | 0,04 | 0,40 0,60 ...
টাইম সিরিজ ভেরিয়েবলগুলি প্রতিটি নির্দিষ্ট বিভাগে প্রতিদিন মোট ইভেন্টের তুলনায় শতাংশ (এটির অর্থ প্রতিটি ভেরিয়েবলগুলি যোগ করা প্রতিটি সারিতে প্রতি 1 হওয়া উচিত)। এটি এরকম করার কারণ হ'ল উদাহরণস্বরূপ ইভেন্টগুলির সাথে একটি সময় সিরিজ 0 0 0 1 0
এবং 1 1 1 2 1
সম্পূর্ণ আলাদা, এবং সাধারণকে মানীকৃত করা একই ফলাফল দেয়। এবং বিভিন্ন বিভাগের মধ্যে উচ্চ স্কু কারণে, আমি সময় সিরিজের মানগুলি অন্যদের সাথে স্বাধীনভাবে যাচাই করি।
আমার এখনই যা করা দরকার তা এই বিভাগগুলি সনাক্ত করতে হবে (মনে রাখবেন, তারা 1 থেকে 25 পর্যন্ত কোনও সংখ্যা হতে পারে x হতে পারে) 3 টি ট্যাগে: ট্যাগ এ, ট্যাগ বি এবং তাদের কোনওটি নয়। এই ভেরিয়েবলগুলি দেখে আমি ম্যানুয়ালি সনাক্ত করতে পারি যে তারা কোন ট্যাগের সাথে সম্পর্কিত এবং ধারণাটি হ'ল আমি যতটা পারি ম্যানুয়ালি সনাক্ত করতে পারি এবং সেগুলি থেকে শিখতে এবং সেগুলি সনাক্ত করতে কোনও শ্রেণিবদ্ধ অ্যালগরিদম ব্যবহার করি।
আমার ধারণাটি ছিল টেবিলে একাধিক লজিস্টিক রিগ্রেশন ব্যবহার করা, তবে সময় সিরিজের সমস্ত ভেরিয়েবলগুলি পরস্পর সম্পর্কিত হয় (যেহেতু তারা একে অপরের লিনিয়ার সংমিশ্রণ), তাই আমি ভেবেছিলাম আমি কেবল ইউক্যালিডিয়ান ব্যবহার করে কেবল সময়ের সিরিজের মধ্যে একটি ক্লাস্টারিং অ্যালগরিদম ব্যবহার করি বিভিন্ন নিদর্শনগুলিকে শ্রেণীবদ্ধ করার জন্য ফলাফল এবং লজিস্টিক রিগ্রেশনটিতে ফলাফল দুটি এবং সাধারণ দুটি পরিবর্তনশীল ব্যবহার করতে দূরত্ব।
আমার যে অন্য উদ্বেগ রয়েছে তা হ'ল এই পদ্ধতিটি প্রতিটি সারিটি অন্যদের থেকে স্বতন্ত্রভাবে গ্রহণ করে এবং তত্ত্ব অনুসারে প্রতিটি গ্রাহকের জন্য কেবল 0 বা 1 ট্যাগ এ, 0 বা 1 ট্যাগ বি থাকা উচিত এবং তাদের অবশিষ্টগুলি কোনওটিই হওয়া উচিত নয় (অন্য একটি টিপটি হ'ল সাধারণত ট্যাগ এ এবং বি প্রথম বিভাগগুলির মধ্যে থাকে কারণ সাধারণত বৈশিষ্ট্যগুলির উপর নির্ভরশীল (যদি বেশিরভাগ দিন বেশি থাকে তবে সীমাটি A বা B হয়, টাইম সিরিজ প্যাটার্নের উপর নির্ভর করে) ।
সম্পাদনা: এটি এখন আর উদ্বেগের বিষয় নয়, আমি কেবল দুটি ভিন্ন লজিস্টিক রিগ্রেশন করব, একটি ট্যাগ এ বা অন্যটির জন্য এবং অন্যটি ট্যাগ বি বা অন্যটির, ফলাফল সম্ভাবনার সাথে আমি কেবলমাত্র সেরাটি বেছে নিতে পারি।
ডেটাসেটটি প্রচুর এবং চূড়ান্ত অ্যালগরিদম এসকিউএল (টেরাদাতায়) ব্যবহার করে প্রয়োগ করা দরকার, তবে লজিস্টিক রিগ্রেশন বা গুচ্ছের কেন্দ্রগুলির সহগ পাওয়ার জন্য আমি একটি নমুনা পেয়েছি এবং আর ব্যবহার করি।