একটি মাল্টিক্লাস শ্রেণিবদ্ধের গুণমান কীভাবে নির্ধারণ করা যায়


30

প্রদত্ত

  • দৃষ্টান্ত দিয়ে একটি ডেটাসেটের একসাথে শ্রেণীর যেখানে প্রতিটি উদাহরণের ঠিক এক বর্গ জন্যে N x i y iএক্সআমিএনএক্সআমিYআমি
  • একটি মাল্টিক্লাস শ্রেণিবদ্ধ

প্রশিক্ষণ ও পরীক্ষার পর আমি মূলত সঙ্গে একটি টেবিল আছে সত্য বর্গ এবং পূর্বাভাস বর্গ প্রতিটি উদাহরণের জন্য টেস্ট সেট হবে। সুতরাং প্রতিটি উদাহরণের জন্য আমার একটি হয় ম্যাচ ( y_i = a_i ) বা একটি মিস ( y_i \ neq a_i )।Yআমিx i y i = a i y ia iএকটিআমিএক্সআমিYআমি=একটিআমিYআমিএকটিআমি

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

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

আমি যে সহজ পদ্ধতির কথা ভাবতে পারি তা হ'ল বৃহত্তম শ্রেণির সঠিক মিলগুলি বাদ দেওয়া। আর কি?


আমি প্রশ্নটি সঠিকভাবে বুঝতে পেরেছি কিনা তা নিশ্চিত নই। আপনি কি কনফিউশন ম্যাট্রিক্স এবং উত্পন্ন পদক্ষেপগুলি জানেন ? এটা কি আপনার প্রশ্নের উত্তর? না আপনি আরও জটিল কিছু উল্লেখ করেন?
স্টেফেন

আমি মনে করি এটিই আমার বিভ্রান্তির উত্স: প্রথম অনুচ্ছেদে আপনি বলেছেন .. কোথাও হ'ল আসল শ্রেণি এবং ... : আপনি কি বোঝাতে চেয়েছেন যে একটি উদাহরণ এক্সআমি একাধিক শ্রেণীর অন্তর্ভুক্ত / থাকতে পারে? বা প্রতিটি এক্সআমি ঠিক এক শ্রেণীর / এর সাথে সম্পর্কিত? আপনি দয়া করে পরিষ্কার করতে পারেন?
স্টেফেন

@ স্টেফেন: আমি বিভ্রান্তির ম্যাট্রিক্স দেখেছি। আমার বিশেষ ক্ষেত্রে আমার 4 টি ক্লাস রয়েছে। সুতরাং আমি নিশ্চিত নই যে কোন উদ্ভূত পদক্ষেপগুলি ব্যবহার করা যেতে পারে এবং তা বোঝা যায়। প্রতিটি কেবল একটি শ্রেণীর অন্তর্গত। তবে সেখানে এর থেকেও বেশী দুটি সম্ভাব্য শ্রেণীর সামগ্রিক হয় । আই [ , , এন ]xii[1,,N]
জেরেনুক

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

@ মিশেলম্যাকগোয়ান আমি স্পষ্টির জন্য ওপিকে জিজ্ঞাসা করেছি এবং তারপরে মাল্টিক্লাস ইস্যুটি স্পষ্টভাবে প্রতিফলিত করার জন্য একটি সম্পাদনা সম্পাদনা করেছি, যা সম্পাদনা (আইএমএইচও) এর আগে স্পষ্ট ছিল না।
স্টেফেন

উত্তর:


16

বাইনারি শ্রেণিবদ্ধকরণের মতো, আপনি নিজের শ্রেণিবদ্ধের গুণমানটি অনুমান করার জন্য অনুমিত ত্রুটি হারটি ব্যবহার করতে পারেন । কে একটি শ্রেণিবদ্ধ হতে দিন এবং এবং যথাক্রমে আপনার ডেটা বেস এবং এর শ্রেণিতে একটি উদাহরণ হতে পারে। আপনি যেমন বলেছিলেন, ক্লাসগুলি ভারসাম্যহীন হলে, বেসলাইনটি হয় না 50% তবে বড় শ্রেণীর অনুপাত। ত্রুটির ভারসাম্য রাখতে আপনি প্রতিটি শ্রেণিতে একটি ওজন যুক্ত করতে পারেন could যাক ক্লাসের ওজন হওয়া । Set the ওজন নির্ধারণ করুন এবং ওজনযুক্ত অভিজ্ঞতাগত ত্রুটিটি সংজ্ঞায়িত করুনএক্স আমি Y আমি( ) = 1এক্সআমিYআমিWyy1

RR()=1এনΣআমিএন1(এক্সআমি)Yআমি
ওয়াটYYerrW(g)=11ওয়াটY~1এনΣআমিএন1Yআমি=Y
RRওয়াট()=1এনΣআমিএনওয়াটYআমি1(এক্সআমি)Yআমি

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

আপনার মাল্টিক্লাস সমস্যার জন্য আরওসি বক্ররেখা বাড়ানো যেতে পারে। আমি আপনাকে এই থ্রেডের উত্তর পড়ার পরামর্শ দিচ্ছি ।


1
পরীক্ষামূলক ত্রুটির মতো একই স্কেলটিতে ক্লাসের সংখ্যা দ্বারা ভারিত পরীক্ষামূলক ত্রুটি ভাগ করার প্রয়োজন নেই? অন্যথায় এটি আরও বড় হতে পারে ...
ফিলিপপ্রো

17

মাল্টি-ওয়ে পাঠ্য শ্রেণীবদ্ধকরণ সিস্টেমগুলি মূল্যায়নের জন্য, আমি মাইক্রো এবং ম্যাক্রো-গড় এফ 1 (এফ-পরিমাপ) ব্যবহার করি। এফ-পরিমাপটি মূলত নির্ভুলতার ওজনযুক্ত সমন্বয় এবং এটি পুনরায় স্মরণ করে। বাইনারি শ্রেণিবদ্ধকরণের জন্য, মাইক্রো এবং ম্যাক্রো পন্থাগুলি একই রকম, তবে, বহুমুখী ক্ষেত্রে, আমি মনে করি তারা আপনাকে সাহায্য করতে পারে। আপনি মাইক্রো এফ 1টিকে নির্ভুলতার ওজনযুক্ত সমন্বয় হিসাবে মনে করতে পারেন এবং প্রত্যাহার যা প্রতিটি নথির সমান ওজন দেয়, এবং ম্যাক্রো এফ 1 প্রতিটি শ্রেণীর জন্য সমান ওজন দেয়। প্রতিটি জন্য, এফ-পরিমাপ সমীকরণ একই, তবে আপনি নির্ভুলতা গণনা করুন এবং আলাদাভাবে স্মরণ করুন:

এফ=(β2+ +1)পিআরβ2পি+ +আর,

যেখানে সাধারণত 1 তে সেট করা থাকে Then তারপরে,β

পিমিআমিR=Σআমি=1|সি|টিপিআমিΣআমি=1|সি|টিপিআমি+ +এফপিআমি,আরমিআমিR=Σআমি=1|সি|টিপিআমিΣআমি=1|সি|টিপিআমি+ +এফএনআমি

পিমিএকটিR=1|সি|Σআমি=1|সি|টিপিআমিটিপিআমি+ +এফপিআমি,আরমিএকটিR=1|সি|Σআমি=1|সি|টিপিআমিটিপিআমি+ +এফএনআমি

যেখানে সত্য ধনাত্মক, মিথ্যা পজিটিভ, মিথ্যা নেতিবাচক এবং শ্রেণি হয়।টিপিএফপিএফএনসি


1
# Function in R, using precision, recall and F statistics

check.model.accuracy <- function(predicted.class, actual.class){

  result.tbl <- as.data.frame(table(predicted.class,actual.class ) ) 

  result.tbl$Var1 <- as.character(result.tbl$predicted.class)
  result.tbl$Var2 <- as.character(result.tbl$actual.class)

  colnames(result.tbl)[1:2] <- c("Pred","Act")

  cntr <- 0  
  for (pred.class in unique(result.tbl$Pred) ){
    cntr <- cntr+ 1
    tp <- sum(result.tbl[result.tbl$Pred==pred.class & result.tbl$Act==pred.class, "Freq"])
    tp.fp <- sum(result.tbl[result.tbl$Pred == pred.class , "Freq" ])
    tp.fn <- sum(result.tbl[result.tbl$Act == pred.class , "Freq" ])
    presi <- tp/tp.fp 
    rec <- tp/tp.fn
    F.score <- 2*presi*rec/(presi+rec)
    if (cntr == 1 ) F.score.row <- cbind(pred.class, presi,rec,F.score)
    if (cntr > 1 ) F.score.row <- rbind(F.score.row,cbind(pred.class,presi,rec,F.score))
  }

  F.score.row <- as.data.frame(F.score.row) 
  return(F.score.row)
}

check.model.accuracy(predicted.df,actual.df) 
# For multiclass, average across all classes 

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