কেরাসের সাথে বহু-শ্রেণীর শ্রেণিবিন্যাসে স্ট্রিং লেবেলগুলি কীভাবে মোকাবেলা করবেন?


18

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

[["dog", "path/to/dog/imageX.jpg"],["cat", "path/to/cat/imageX.jpg"], ["bird", "path/to/cat/imageX.jpg"]]

"কুকুর", "বিড়াল" এবং "পাখি" ক্লাস লেবেল। আমি মনে করি এই সমস্যার জন্য ওয়ান-হট এনকোডিং ব্যবহার করা উচিত তবে কীভাবে এই স্ট্রিং লেবেলগুলি ব্যবহার করবেন সে সম্পর্কে আমি খুব পরিষ্কার clear আমি স্কেলার্নের লেবেল এনকোডারটিকে এইভাবে চেষ্টা করেছি:

encoder = LabelEncoder()
trafomed_label = encoder.fit_transform(["dog", "cat", "bird"])
print(trafomed_label)

এবং আউটপুটটি [2 1 0], যা আমার [[1,0,0], [0,1,0], [0,0,1]] এর মতো প্রত্যাশার আউটপুট থেকে আলাদা। এটি কিছু কোডিং দিয়ে করা যেতে পারে, তবে আমি এটি জানতে চাই যে এটির সাথে মোকাবিলা করার কোনও "মানক" বা "traditionalতিহ্যবাহী" উপায় আছে কিনা?

উত্তর:


14

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

আপনি যদি একটি-গরম এনকোডিং চান তবে আপনি তার LabelBinarizerপরিবর্তে ব্যবহার করতে পারেন । এটি খুব একইভাবে কাজ করে:

 from sklearn.preprocessing import LabelBinarizer
 encoder = LabelBinarizer()
 transfomed_label = encoder.fit_transform(["dog", "cat", "bird"])
 print(transfomed_label)

আউটপুট:

[[0 0 1]
 [0 1 0]
 [1 0 0]]

আপনি যখন নতুন রঙের পূর্বাভাস দেওয়ার চেষ্টা করবেন তখন হটেনকোডিং কীভাবে আপনাকে সহায়তা করতে পারে? হতে পারে আপনার ক্ষেত্রে আপনাকে মডেলটি পুনরায় প্রশিক্ষণ করতে হবে। আপনার কি কোন সমাধান আছে?
gtzinos

@ জিটিজিনোস: এটি দেখতে অন্যরকম প্রশ্নের মতো। সম্ভবত এটি সাইটে জিজ্ঞাসা করুন। যদি আপনি এটি করেন তবে স্পষ্ট করে নিন যে আপনি কোনও এনএন কোনও ব্র্যান্ডের নতুন আইটেমের পূর্বাভাস দেওয়ার বিষয়ে উদ্বিগ্ন কিনা (প্রশিক্ষণের ডেটাতে দেখা যায় না তবে যৌক্তিকভাবে নতুন ইনপুটগুলিতে হওয়া উচিত), অথবা ফ্লাইয়ে যখন নতুন প্রশিক্ষণ ডেটার মুখোমুখি হয় তখন নতুন ক্লাস যুক্ত করা উচিত।
নিল স্লেটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.