"চলমান" রৈখিক বা লজিস্টিক রিগ্রেশন পরামিতিগুলি গণনা করার জন্য কি অ্যালগরিদম রয়েছে?


32

Http://www.johndcook.com/standard_deedia.html এ "নির্ভুলভাবে চলমান বৈকল্পিক গণনা" একটি কাগজ দেখায় যে কীভাবে চলমান গড়, বৈচিত্র এবং মানক বিচ্যুতিগুলি গণনা করা যায়।

অ্যালগরিদমগুলি রয়েছে যেখানে প্রতিটি নতুন প্রশিক্ষণের রেকর্ড সরবরাহ করার সাথে সাথে লিনিয়ার বা লজিস্টিক রিগ্রেশন মডেলের প্যারামিটারগুলি একইভাবে "গতিশীল" আপডেট করা যেতে পারে?


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

1
আরএলএস অ্যালগরিদম এবং এর রূপগুলি দেখুন। en.wikipedia.org/wiki/Recursive_least_squares_filter
Memming

উত্তর:


20

y=ax+b এর লিনিয়ার রিগ্রেশন সহগ হ'ল a=cov(x,y)/var(x) এবং b=mean(y)amean(x)

সুতরাং আপনার যা দরকার তা হ'ল cov(x,y) গণনা করার জন্য একটি ইনক্রিমেন্টাল পদ্ধতি । এই মান এবং x এর বৈকল্পিক এবং y এবং x উভয়ের মধ্যস্থতা থেকে আপনি a এবং b পরামিতিগুলি গণনা করতে পারেন । তোমাদের মধ্যে ক্রমবর্ধমান গণনার নিচে দেওয়া ছদ্ম কোডে যেমন দেখতে পাবেন যে cov(x,y) খুব এর ক্রমবর্ধমান গণনার অনুরূপ var(x) । এর কারণ হল একটি আশ্চর্য হওয়া উচিত নয় var(x)=cov(x,x)

আপনি সম্ভবত খুঁজছেন যে সিউডো কোডটি এখানে:

init(): meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0

update(x,y):
n += 1
dx = x - meanX
dy = y - meanY
varX += (((n-1)/n)*dx*dx - varX)/n
covXY += (((n-1)/n)*dx*dy - covXY)/n
meanX += dx/n
meanY += dy/n

getA(): return covXY/varX
getB(): return meanY - getA()*meanX

একটি সমতুল্য আলগোরিদম ক্রমবর্ধমানভাবে R=(XX)1XY হিসাবে একাধিক ভেরিয়েট রিগ্রেশন গণনা করার সময় আমি এই প্রশ্নটি পেয়েছি যাতে XR=Y+ϵ


4
আপনার অবদানের জন্য ধন্যবাদ! লিনিয়ার রিগ্রেশন সম্পর্কিত প্রশ্নের অংশটি আসলে stats.stackexchange.com/questions/6920/… এর সদৃশ যার উত্তরগুলি দেখায় যে কীভাবে একাধিক লিনিয়ার রিগ্রেশন মডেল আপডেট করা যায়। বর্তমান থ্রেডটি দাঁড়ানোর অনুমতি দেওয়া হয়েছে কারণ প্রশ্নের লজিস্টিক রিগ্রেশন অংশটি স্বতন্ত্রভাবে। প্রকৃতপক্ষে, এমনকি লজিস্টিক অংশটি নকল করা হয়েছে stats.stackexchange.com/questions/59174/… এ
whuber

1
আমি ভেবেছিলাম যে এই উত্তরটি প্রশ্নে প্রদত্ত রেফারেন্স পাঠ্য বিবেচনা করে দরকারী হবে। লিঙ্ক করার জন্য আপনাকে ধন্যবাদ। তবে এটি আমি যা খুঁজছি তা নয়। আমার ব্যবহারের ক্ষেত্রে দৃশ্যত বিশেষ।
chmike

3
আমি বিশ্বাস করি এটি কার্যকর হতে পারে এবং ওয়ার্কিং কোড সরবরাহের ক্ষেত্রে অনন্য।
whuber

আমি আপনাকে জিজ্ঞাসা করতে পারি যে আপনি কেন ডেক্স * ডাই টাইম (এন -১) / এনকে অনুমতি দিলেন?
ফেভারমিলিক্স

আপনি পি-মান গণনা করার জন্য কোডটি উন্নত করতে পারেন?
নাথান

12

আপনার দুটি নির্দিষ্ট উদাহরণের জন্য:

লিনিয়ার রিগ্রেশন The Paper "অনলাইন লিনিয়ার রিগ্রেশন এবং মডেল ভিত্তিক শক্তিবৃদ্ধি শেখার তার প্রয়োগ" আলেকজান্ডার Strehl এবং মাইকেল Littman দ্বারা একটি অ্যালগরিদম "Kwik লিনিয়ার রিগ্রেশন" বলা বর্ণনা (এলগরিদম 1 দেখুন) যা ক্রমবর্ধমান আপডেট ব্যবহার রৈখিক রিগ্রেশনের সমাধান একটি পড়তা প্রদান করে । মনে রাখবেন যে এটি নিয়মিত করা হয়নি (যেমন এটি রিজ রিগ্রেশন নয়)। আমি নিশ্চিত যে স্ট্রেইল এবং লিটম্যান এর পদ্ধতিটি সেটিং পর্যন্ত প্রসারিত করতে পারে না pretty

পণ্য সরবরাহ সংশ্লেষণ

এই থ্রেড বিষয়টি সম্পর্কে কিছুটা আলোকপাত করে। বরাত দিয়ে:

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

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


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

3
@ রবার্টডোডিয়ার আপনি লিনিস্টিক রিগ্রেশন নয়, লিনিয়ার বৈষম্যমূলক বিশ্লেষণ বর্ণনা করেছেন। এখানে সূচনা বিভাগের শেষ অনুচ্ছেদটি সম্পর্কের বিষয়টি স্পষ্ট করে।
আহফস

@ অহফস এমনকি প্রতি-শ্রেণীর ডেটাগুলি সাধারণত বিতরণ না করা সত্ত্বেও, কেউ এখনও প্রতি শ্রেণীর সমবায়ীদের মাধ্যমে লজিস্টিক রিগ্রেশনের সমতুল্য একটি মডেল তৈরি করতে পারে।
রবার্ট ডডিয়ের

1
@ রবার্টডোডিয়ার সমতুল্য মডেল কী? আপনি মনে করছেন যে এখানে যথেষ্ট সমস্যার জন্য একটি সুস্পষ্ট সমাধান রয়েছে। আপনার সমাধানটি আপনি যতটা বুঝতে পেরেছেন তেমন উজ্জ্বল, বা এর চেয়ে অনেক কম।
আহফসস

11

একটি সাধারণ নীতি হিসাবে:

0) আপনি পর্যাপ্ত পরিসংখ্যান এবং বর্তমান এমএল অনুমান রাখেন

1) আপনি যখন নতুন ডেটা পাবেন তখন পর্যাপ্ত পরিসংখ্যান এবং অনুমানগুলি আপডেট করুন

2) যখন আপনার পর্যাপ্ত পরিসংখ্যান না থাকে তখন আপনাকে সমস্ত ডেটা ব্যবহার করতে হবে।

3) সাধারণত আপনার ক্লোজড ফর্ম সমাধান নেই; পূর্ববর্তী এমএলইগুলি শুরুর পয়েন্ট হিসাবে ব্যবহার করুন, সেখান থেকে নতুন সর্বোত্তম খুঁজে পেতে কিছু সুবিধাজনক অপ্টিমাইজেশন পদ্ধতি ব্যবহার করুন। আপনার নির্দিষ্ট ধরণের সমস্যার উদাহরণগুলির জন্য কোন পদ্ধতিগুলি সেরা ট্রেড অফগুলি তৈরি করে তা খুঁজে পেতে আপনাকে কিছুটা পরীক্ষা-নিরীক্ষার প্রয়োজন হতে পারে।

আপনার সমস্যার যদি একটি বিশেষ কাঠামো থাকে তবে আপনি সম্ভবত এটি ব্যবহার করতে পারেন।

কয়েকটি সম্ভাব্য রেফারেন্সগুলির কিছু মূল্য বা নাও থাকতে পারে:

ম্যাকমাহান, এইচবি এবং এম। স্ট্রিটার (২০১২),
ওপেন প্রব্লেম: অনলাইন লজিস্টিক রিগ্রেশন এর জন্য আরও ভাল বাউন্ডস ,
জেএমএলআর: ওয়ার্কশপ অ্যান্ড কনফারেন্স প্রসিডিংস , খণ্ড 23, 44.1–44.3

পেনি, WD এবং এসজে রবার্টস (1999),
ডায়নামিক পণ্য সরবরাহ রিগ্রেশন ,
প্রসিডিংস IJCNN '99


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

2
এটি লক্ষণীয় গুরুত্বপূর্ণ যে পর্যাপ্ত পরিসংখ্যান থাকলে বোঝা যায় না যে আপনার কাছে সমীকরণগুলির সমাধান রয়েছে।
গ্লেন_বি -রিনস্টেট মনিকা

8

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

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

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


6

অন্যান্য উত্তরগুলি মেশিন লার্নিংয়ের জগতে ইঙ্গিত করেছে এবং এটি অবশ্যই সেই জায়গা যেখানে এই সমস্যাটির সমাধান করা হয়েছে।

তবে, আপনার প্রয়োজনের জন্য আরও উপযুক্ত হতে পারে এমন আরও একটি পদ্ধতি হ'ল কম র‌্যাঙ্ক আপডেটের সাথে কিউআর ফ্যাক্টরাইজেশন ব্যবহার। এটি করার পক্ষে এবং এটি ন্যূনতম স্কোয়ার সমস্যাগুলি সমাধান করার জন্য ব্যবহারের পদ্ধতিগুলি এখানে দেওয়া হল:

হ্যামারলিং এবং লুਕਾਸ দ্বারা কিউআর ফ্যাক্টরিয়েশন এবং সর্বনিম্ন স্কোয়ার সমস্যা আপডেট করা


5

yt=βtxt+εt,βt=βt1+ηt
βt=βt1

yt=logit(βtxt+εt),βt=βt1+ηt

2

এটি উত্তর @ chmike যোগ করতে হয়।

পদ্ধতিটি বিপি ওয়েলফোর্ডের অনলাইন অ্যালগরিদমের সাথে সাদৃশ্যপূর্ণ বিচ্যুতির জন্য অনুরূপ বলে মনে হয় যা গড়টিও গণনা করে। জন কুক এখানে একটি ভাল ব্যাখ্যা দেয় । ২০০৯ সালে টনি ফিঞ্চ একটি ক্ষতিকারক চলমান গড় এবং মানক বিচ্যুতির জন্য একটি পদ্ধতি সরবরাহ করে:

diff := x – mean 
incr := alpha * diff 
mean := mean + incr 
variance := (1 - alpha) * (variance + diff * incr)

পূর্ববর্তী পোস্ট করা উত্তরে পিয়ারিং করা এবং এটির উপর প্রসারিত হওয়া কোনও ক্ষতিকারক চলমান উইন্ডো অন্তর্ভুক্ত করতে:

init(): 
    meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0,
    meanXY = 0, varY = 0, desiredAlpha=0.01 #additional variables for correlation

update(x,y):
    n += 1
    alpha=max(desiredAlpha,1/n) #to handle initial conditions

    dx = x - meanX
    dy = y - meanY
    dxy = (x*y) - meanXY #needed for cor

    varX += ((1-alpha)*dx*dx - varX)*alpha
    varY += ((1-alpha)*dy*dy - varY)*alpha #needed for corXY
    covXY += ((1-alpha)*dx*dy - covXY)*alpha

    #alternate method: varX = (1-alpha)*(varX+dx*dx*alpha)
    #alternate method: varY = (1-alpha)*(varY+dy*dy*alpha) #needed for corXY
    #alternate method: covXY = (1-alpha)*(covXY+dx*dy*alpha)

    meanX += dx * alpha
    meanY += dy * alpha
    meanXY += dxy  * alpha

getA(): return covXY/varX
getB(): return meanY - getA()*meanX
corXY(): return (meanXY - meanX * meanY) / ( sqrt(varX) * sqrt(varY) )

উপরের "কোড" এ, কাঙ্ক্ষিত আলফা 0 তে সেট করা যেতে পারে এবং যদি তা হয় তবে কোডটি ক্ষতিকারক ওজন ছাড়াই কাজ করবে। চলন্ত উইন্ডো আকারের জন্য Modified_moving_average এর পরামর্শ অনুসারে কাঙ্ক্ষিত আলফা 1 / কাঙ্ক্ষিত উইন্ডোসাইজে সেট করার পরামর্শ দেওয়া যেতে পারে ।

পার্শ্ব প্রশ্ন: উপরের বিকল্প গণনার মধ্যে, কোন মন্তব্য যা সম্পর্কে একটি নির্ভুলতা দৃষ্টিকোণ থেকে ভাল?

তথ্যসূত্র:

chmike (2013) https://stats.stackexchange.com/a/79845/70282

কুক, জন (এনডি) সঠিকভাবে চলমান বৈকল্পিক গণনা করছে http://www.johndcook.com/blog/standard_deedia/

ফিঞ্চ, টনি (২০০৯) ওজনযুক্ত গড় এবং বৈকল্পিকের বর্ধিত গণনা। https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf

উইকিপিডিয়া। (এনডি) ভ্যাল্ডফোর্ডের অনলাইন অ্যালগরিদম https://en.wikedia.org/wiki/Algorithms_for_calculating_variance# অনলাইন অনলাইন_আলগরিদম

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