স্থির নয় এমন শ্রেণিবদ্ধ তথ্য দিয়ে আমি কীভাবে শ্রেণিবদ্ধকরণ করব?


10

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

উদাহরণ হিসেবে বলা যায়, আমার শ্রেণীগত তথ্য ছিল sex, একমাত্র সম্ভাব্য লেবেল হবে female, maleএবং other, কোন কি ব্যাপার। যাইহোক, আমার শ্রেণিবদ্ধ ভেরিয়েবল cityতাই এটি ঘটতে পারে যে আমি পূর্বাভাস দেওয়ার চেষ্টা করছি তার একটি নতুন শহর আছে যা আমার শ্রেণিবদ্ধ কখনও দেখেনি never

আমি ভাবছি যে এই পদগুলিতে শ্রেণিবদ্ধকরণ করার কোনও উপায় আছে বা এই নতুন শ্রেণিবদ্ধ ডেটা বিবেচনা করে আবার প্রশিক্ষণ করা উচিত কিনা।


1
আপনি cityকিছু ফাংশনের উপর ভিত্তি করে একটি সংখ্যায় রূপান্তর করতে পারেন ? ভালো লেগেছে city' = f(latitude, longitude)এই ভাবে, আপনি কোন শহরের জন্য একটি নতুন মান তৈরি করতে পারেন
মোহাম্মদ আতহার

@ মোহাম্মদআথার এখানে সঠিক সমাধান দিয়েছেন, আশা করি ওপি এটি দেখে!
ফ্রান্সেস্কো পেগোোরো

উত্তর:


11

এটা খুব ভাল প্রশ্ন; প্রকৃতপক্ষে এই সমস্যাটি কিছু সময়ের জন্য রয়েছে এবং আমি এখনও এর সঠিক সমাধান খুঁজে পাইনি। তবুও আমার অভিজ্ঞতা শেয়ার করে খুশি:

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

  • আপনার মডেল পুনরায় প্রশিক্ষণ । তাত্ত্বিকভাবে আপনার ট্রেন / সেট শেখার সময় একই বিতরণ হওয়া উচিত ছিল (বেশিরভাগ ক্ষেত্রে এটি লক্ষ্য বিতরণ হিসাবে বিবেচিত হয় তবে ভেরিয়েবলগুলির ক্ষেত্রেও সত্য হতে পারে)। এখন নতুন আইটেম খেলতে আসে, আপনার পরীক্ষা (অদেখা) ডেটা বিতরণ পরিবর্তন হয়েছে। তারপরে মডেলটিকে আবার পুনরায় প্রশিক্ষণ দেওয়া ভাল যাতে সেই নতুন শহরগুলির জন্য গণনা করা যায়।

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

  • অন্যান্য সাম্প্রতিক অ-তবুও পরিপক্ক সমাধান যেমন ক্যাট 2ভেক (এনএলপি থেকে ওয়ার্ড 2Vec থেকে নেওয়া) বা সাদৃশ্য এনকোডিং । এই খুব সাম্প্রতিক হয়, চেক কাগজ সাবেক এবং তার জন্য GitHub এবং একটি উদাহরণ (Word2Vec উপর ভিত্তি করে) Kaggle মধ্যে, এবং এই কাগজ আধুনিক এবং তার জন্য বাস্তবায়ন । পূর্বের ধারণাটি বিভাগগুলিকে ভেক্টরগুলিতে রূপান্তর করা। আমার যতটুকু বলতে হবে এটি সত্যই কাজ করার জন্য বুদ্ধিমান, তবে এটি ব্যবহার করার অভিজ্ঞতা আমার নেই। আধুনিক, তথাকথিত নোংরা_ক্যাটটি দেখতে বেশ আশাব্যঞ্জক এবং সহজেই ব্যবহারযোগ্য। আপনার পরীক্ষার ডেটাতে অদেখা কার্ডিনাল ক্যাটাগরি থাকা শক্ত কিনা তা আমার কাছে পরিষ্কার নয়!

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

প্রথম , দ্বিতীয় , তৃতীয় , চতুর্থ চেক করার জন্য আকর্ষণীয় তথ্যসূত্র (কোনও নির্দিষ্ট আদেশ নেই!)

উপরে উল্লিখিত সমস্ত পয়েন্টগুলি ব্যবহারিক সমাধানগুলি বরং তাত্বিকভাবে তাত্ত্বিকভাবে সঠিক, এবং অবশ্যই আরও আলোচনার বিষয় to এবং আমি আরও জানতে পেরে অনেক বেশি খুশি।


1
অনুরূপ শহরগুলির গুচ্ছ তৈরি সম্পর্কে কী? আমাদের কাছে একটি নতুন শহর থাকলেও এটি যেমন আমাদের ইতিমধ্যে যা আছে তার চেয়ে আলাদা নয়, আমরা সবচেয়ে কাছের মিলের শহরটি ক্রস-চেক করতে পারি?
আদিত্য

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

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

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

4

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

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


সহজ শুরু এবং সেখান থেকে ক্রমবর্ধমান একটি দুর্দান্ত পরামর্শ!
ইসকাচাতর

0

আপনার ভোপাল ওয়াবিট চেকআউট করা উচিত , যা হ্যাশিং ট্রিক এবং অভিযোজিত শিক্ষার হারগুলি ব্যবহার করে খুব সুন্দর নতুন বৈশিষ্ট্যগুলি পরিচালনা করে ।

যখন নতুন বৈশিষ্ট্যগুলি উপস্থিত হবে (ট্রেন বা পরীক্ষার সময়) এটি কেবল ক্রাশ হবে না কেবল এটি তার ওজন আপডেট করতে শুরু করবে start এর উপরে এটির দুষ্ট দ্রুত fast এটি কেবল লিনিয়ার মডেলের বৈকল্পিক প্রয়োগ করে, সুতরাং আপনি সেই দিকে সীমাবদ্ধ। সম্পর্কে একটি খুব শক্তিশালী সরঞ্জাম

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