এটা খুব ভাল প্রশ্ন; প্রকৃতপক্ষে এই সমস্যাটি কিছু সময়ের জন্য রয়েছে এবং আমি এখনও এর সঠিক সমাধান খুঁজে পাইনি। তবুও আমার অভিজ্ঞতা শেয়ার করে খুশি:
- যথাসম্ভব ওয়ান-হট-এনকোড এড়িয়ে চলুন (উপরের পরামর্শের বিপরীতে)। যুক্তিটি হ'ল এটি কাজ করবে না। ওয়ান-হট-এনকোড বৈশিষ্ট্যযুক্ত একটি মডেল কেবল তখনই কাজ করে যখন প্রশিক্ষণ ডেটাতে এই সমস্ত সুবেভেলগুলি উপস্থিত ছিল। কোনওভাবে ম্যানুয়ালি এটি টুইট করা না হলে মডেল ভবিষ্যদ্বাণী করতে সক্ষম হবেন না। আপনি যদি অনুসন্ধান করেন তবে দেখতে পাবেন যে অনেক লোক তাদের ডেটা ট্রেন / পরীক্ষায় বিভক্ত করার সময় এই সমস্যাটিতে ছড়িয়ে পড়েছিল, এবং একটি নির্দিষ্ট বৈশিষ্ট্যের কিছু সাবলেভিলের সমস্যার মুখোমুখি হয়েছিল প্রশিক্ষণ বিভাগে উপস্থিত ছিল না এবং পরবর্তীকালে পরীক্ষার বিষয়ে ভবিষ্যদ্বাণী করতে ব্যর্থ হয়েছিল। একপাশে বলেছিলেন, আপনার যদি খুব উচ্চ কার্ডিনাল বৈশিষ্ট্য থাকে (তবে আপনার শহরটির মতো 200 শহরের নাম বলা যাক), এটি অকারণে আপনার ডেটার মাত্রিকতা বাড়িয়ে তুলবে! যদি কিছু কারণে আপনাকে ওয়ান-হট-এনকোডিং করতে হতে পারে তবে কেবল এগুলি মনে রাখবেন।
অন্যান্য এনকোডিং পদ্ধতি ব্যবহার করুন । এই ইস্যুতে শক্তিশালী এমন অন্যান্য পদ্ধতি সম্পর্কে আরও শিখতে চেষ্টা করুন, অন্তত সময়ের জন্য লক্ষ্য-ভিত্তিক কোডিং, হ্যাশিংয়ের মতো (নীচে কিছু উল্লেখ দেখুন)। আপনি পাইথনের সাথে থাকলে একটি দুর্দান্ত প্যাকেজ অফার ম্যান্ট এনকোডিং বিকল্প রয়েছে। আপনি দেখে অবাক হতে পারেন যে অন্যান্য সাধারণ পদ্ধতিগুলি প্রায়শই ঠিক সূক্ষ্মভাবে কাজ করে।
আপনার মডেল পুনরায় প্রশিক্ষণ । তাত্ত্বিকভাবে আপনার ট্রেন / সেট শেখার সময় একই বিতরণ হওয়া উচিত ছিল (বেশিরভাগ ক্ষেত্রে এটি লক্ষ্য বিতরণ হিসাবে বিবেচিত হয় তবে ভেরিয়েবলগুলির ক্ষেত্রেও সত্য হতে পারে)। এখন নতুন আইটেম খেলতে আসে, আপনার পরীক্ষা (অদেখা) ডেটা বিতরণ পরিবর্তন হয়েছে। তারপরে মডেলটিকে আবার পুনরায় প্রশিক্ষণ দেওয়া ভাল যাতে সেই নতুন শহরগুলির জন্য গণনা করা যায়।
অন্যদের কাছে নতুন যুক্ত উপশ্রেণীগুলি (এবং কমপক্ষে ঘন ঘন ঘন ঘন) রাখুন । পূর্বের বিষয়টি তাত্ত্বিকভাবে সত্য হলেও, সম্ভবত পরীক্ষার বিতরণ (সেই নির্দিষ্ট বিভাগের) বেশিরভাগ ক্ষেত্রে তাত্পর্যপূর্ণভাবে পরিবর্তন হবে না যেমন প্রশিক্ষণ সংস্থায় খুব কম আইটেমই বিভাগের শীর্ষে চলে যায়। সম্ভবত আপনার ক্ষেত্রে, আপনার শহরের বৈশিষ্ট্যটিতে ১০০ টি শহর থাকতে পারে এবং সময়ের সাথে সাথে খুব কম নতুনই আসে। আমি কি যে বিবেচনা বিশেষ বিষয়শ্রেণীতে আসুন এক্স-সমাংশক এ খুঁজছেন করা হবে হবে, এবং মধ্যে অন্তত ঘন বেশী করা অন্যরা উপবিষয়শ্রেণীটি। আপনার সদ্য যুক্ত হওয়া ডেটা পয়েন্টটি ধরে নেওয়া খুব সামান্য, এটি অন্যদের মধ্যে চলে যাবেগ্রুপ। এটি করার মাধ্যমে আপনি অবশ্যই এক স্তরের গ্রানুলারিলিটি হারাবেন, তবে আরও একবার শেখার বিষয়টি হ'ল কেবলমাত্র আপনার মডেল প্রশিক্ষণ ডেটা শিখবেন না, তবে সবচেয়ে গুরুত্বপূর্ণ বিষয়টি অদেখা তথ্যের উপর খুব ভাল জেনারেলাইজ করতে সক্ষম হওয়া এবং যদি সেই নতুন যুক্ত বিভাগগুলি রয়েছে খুব ডেটা পয়েন্ট হয়, এগুলিকে পুরোপুরি গোষ্ঠী করে অন্যদের গোষ্ঠীতে আঘাত করা হবে না।
অন্যান্য সাম্প্রতিক অ-তবুও পরিপক্ক সমাধান যেমন ক্যাট 2ভেক (এনএলপি থেকে ওয়ার্ড 2Vec থেকে নেওয়া) বা সাদৃশ্য এনকোডিং । এই খুব সাম্প্রতিক হয়, চেক কাগজ সাবেক এবং তার জন্য GitHub এবং একটি উদাহরণ (Word2Vec উপর ভিত্তি করে) Kaggle মধ্যে, এবং এই কাগজ আধুনিক এবং তার জন্য বাস্তবায়ন । পূর্বের ধারণাটি বিভাগগুলিকে ভেক্টরগুলিতে রূপান্তর করা। আমার যতটুকু বলতে হবে এটি সত্যই কাজ করার জন্য বুদ্ধিমান, তবে এটি ব্যবহার করার অভিজ্ঞতা আমার নেই। আধুনিক, তথাকথিত নোংরা_ক্যাটটি দেখতে বেশ আশাব্যঞ্জক এবং সহজেই ব্যবহারযোগ্য। আপনার পরীক্ষার ডেটাতে অদেখা কার্ডিনাল ক্যাটাগরি থাকা শক্ত কিনা তা আমার কাছে পরিষ্কার নয়!
পিএস: আমি যুক্ত করতে চাই যে প্রথম মন্তব্যে দেওয়া কোনও ভৌগলিক অবস্থানের জন্য শহরের ধারণাটি সত্যিই দুর্দান্ত এবং এটি আসলে জটিল নয় কারণ এগুলি অনেক পাইথন এপিআই, যেমন গুগল বা এখানে আপনি এটি করতে সক্ষম হন। তবে এটি লক্ষ করা যায় যে এটি নতুন বৈশিষ্ট্যগুলি ইঞ্জিনিয়ার করার একমাত্র উপায় এবং সম্ভবত শহর বৈশিষ্ট্যটি নিজেই প্রতিস্থাপন করবেন না।
প্রথম , দ্বিতীয় , তৃতীয় , চতুর্থ চেক করার জন্য আকর্ষণীয় তথ্যসূত্র (কোনও নির্দিষ্ট আদেশ নেই!)
উপরে উল্লিখিত সমস্ত পয়েন্টগুলি ব্যবহারিক সমাধানগুলি বরং তাত্বিকভাবে তাত্ত্বিকভাবে সঠিক, এবং অবশ্যই আরও আলোচনার বিষয় to এবং আমি আরও জানতে পেরে অনেক বেশি খুশি।
city
কিছু ফাংশনের উপর ভিত্তি করে একটি সংখ্যায় রূপান্তর করতে পারেন ? ভালো লেগেছেcity' = f(latitude, longitude)
এই ভাবে, আপনি কোন শহরের জন্য একটি নতুন মান তৈরি করতে পারেন