আর-তে শ্রেণিবদ্ধকরণের মডেলগুলির জন্য বর্ধনীয় শিক্ষা


11

অনুমান করুন, নীচের কোডটি ব্যবহার করে জালিয়াতি সনাক্তকরণের জন্য আমার কাছে শ্রেণিবদ্ধ রয়েছে (এটি সিদ্ধান্ত গাছ, এলোমেলো বন, লজিস্টিক রিগ্রেশন .. ইত্যাদি জাতীয় মানদণ্ডের কোনও হতে পারে)

library(randomForest)
rfFit = randomForest(Y ~ ., data = myData, ntree = 400) # A very basic classifier 

Say, Y is a binary outcome - Fraud/Not-Fraud

এখন, আমি একটি অদেখা ডেটা সেট সম্পর্কে ভবিষ্যদ্বাণী করেছি ।

pred = predict(rfFit, newData)

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

আমার মাথার উপরের দিক থেকে একটি বিকল্প আমি ভাবতে পারি যে এটি তৈরি করা adaboost classifierযাতে নতুন শ্রেণিবদ্ধক পুরানোটির ভুলটিকে সংশোধন করে। বা আমি কিছু Incremental Learningবা শুনেছি Online learning। কোন বিদ্যমান বাস্তবায়ন (প্যাকেজ) আছে R?

এটা কি সঠিক পন্থা? বা মডেলটিকে স্ক্র্যাচ থেকে তৈরি করার পরিবর্তে অন্য কোনও উপায় কী?


আপনি কি সমাধান খুঁজে পেয়েছেন? আমি একই সমস্যা আছে।
ব্লু

@ ব্লু3 এনএক্স দয়া করে মন্তব্য করার প্রশ্নগুলির উত্তরগুলি ব্যবহার করবেন না। উত্তরগুলি তাদের উত্তর দেওয়ার জন্য বোঝানো হয়।
টিম

কোনও উত্তর নয়, তবে আপনাকে কেবল মাইডাটা from জালিয়াতি [অবস্থানবিস্মরণীয়] = সঠিক মান দেওয়া থেকে বিরত করছেন?
ডেল সি

উত্তর:


2

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

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

মানব তদন্তকারীদের মতামতের ভিত্তিতে আপনার তদারক করা মডেলটির উন্নতির সর্বাধিক সহজ উপায় হ'ল সংশোধন করা দৃষ্টান্তগুলির থেকে পৃথক মডেল তৈরি করা (উদাহরণস্বরূপ যে উদাহরণগুলি সঠিকভাবে লেবেলযুক্ত হওয়ার পরে ভুলভাবে অনুমান করা হয়েছিল)। তারপরে আপনার দুটি মডেল তাদের ভবিষ্যদ্বাণী করা শ্রেণীর সদস্যতা একত্রিত করে ভবিষ্যতের উদাহরণগুলির শ্রেণিবদ্ধকরণ সম্পর্কে "ভোট" দিতে পারেন। উদাহরণস্বরূপ, মডেলএ বিশ্বাস করতে পারে যে ইনস্ট্যান্স 1 হ'ল [জালিয়াতি: 0.65, অ-জালিয়াতি: 0.35], যখন মডেলবি বিশ্বাস করেন যে ইনস্ট্যান্স 1 হ'ল [জালিয়াতি: 0.47, অ-প্রতারণা: 0.53]। জমায়েতের পূর্বাভাসটি এইভাবে হবে [জালিয়াতি: (0.65 + 0.47) /2=0.56, নন-জালিয়াতি: (0.35 + 0.53) /2=0.44]।

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


0

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

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

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

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

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

শুভকামনা!

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