উচ্চ-অর্ডার বহুপদী জন্য কেন এখানে বৃহত্তর সহগ আছে?


13

বিশপ এর মেশিন লার্নিংয়ের বইয়ে, এটি একটি বহুবচনীয় ফাংশনটিকে ডেটা পয়েন্টগুলির একটি সেটে বক্ররেখা-ফিটিংয়ের সমস্যা নিয়ে আলোচনা করেছে।

এমটি বহুবর্ষের জন্য লাগানো অর্ডার হোক। এটি যে হিসাবে জানায়

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

আমি বুঝতে পারি না কেন বড় মানগুলি ডেটার পয়েন্টগুলিকে আরও ঘনিষ্ঠভাবে ফিট করে। আমি মনে করব মানগুলি দশমিকের পরে আরও উপযুক্ত করার পরিবর্তে আরও সুস্পষ্ট হয়ে উঠবে।


বইটি x 10 সমান দুরত্ব পয়েন্ট [ 0 , 1 ] তে বিবেচনা করে যেখানে ϵ শূন্য গড় এবং 'ক্ষুদ্র' বৈকল্পিক সহ গাউসীয় (তাই 10 এর সাথে 9 টি মাত্রিক বহুত্বীয় ফিটিং বিবেচনা করে) পয়েন্ট ...y=sin(2πx)+ϵ[0,1]ϵ
seanv507

উত্তর:


18

এটি হাই-অর্ডার পলিনোমিয়ালগুলির সাথে একটি সুপরিচিত সমস্যা, এটি রঞ্জের ঘটনা হিসাবে পরিচিত । সংখ্যাসূচকভাবে এটা সঙ্গে যুক্ত করা হয় মন্দ কন্ডিশনার এর Vandermonde ম্যাট্রিক্স , যা কোফিসিয়েন্টস খুব কম্পিউটেশন ডাটা এবং / অথবা roundoff ছোট বৈচিত্র সংবেদনশীল করে তোলে (অর্থাত মডেল স্কো.মি. নয় শনাক্তযোগ্য )। আরও দেখুন এই উত্তর SciComp দঃপূঃ উপর।

এই সমস্যার অনেকগুলি সমাধান রয়েছে, উদাহরণস্বরূপ চেবিশেভ আনুমানিকতা , মসৃণ স্প্লাইজগুলি এবং তিকনভ নিয়মিতকরণ । Tikhonov নিয়মিতকরণ একটি সাধারণীকরণ ছাড়া কিছুই না শৈলশিরা রিগ্রেশন , একটি আদর্শ দণ্ড আরোপ সহগ ভেক্টরের θ , যেখানে ওজন ম্যাট্রিক্স মসৃণকরণ জন্য Λ কিছু অমৌলিক অপারেটর। দোলাগুলিকে দণ্ডিত করতে আপনি Λ θ = p [ x ] ব্যবহার করতে পারেন , যেখানে পি [ এক্স ]||Λθ]||θΛΛθ=p[x]p[x] বহু উপাত্তটি ডেটাতে মূল্যায়ন করা হয়।

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

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


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

1
+1 টি। উপর নিস মন্তব্য নেই। যেটি কোথা থেকে এসেছে তা ভাবতে ভাবতে, স্প্লাইজিংয়ের কাজটি কীভাবে মসৃণ হয় তা অধ্যয়নরত চোখ খোলা। p
ম্যাথু ড্রুরি

1
আমি এই "ভ্যান্ডারমনডে ম্যাট্রিক্সের কন্ডিশনার" সম্পর্কে আরও কোথায় জানতে পারি?
ম্যাথু ড্রি

@ ম্যাথেজড্রুরি আমি সাধারণত hxd1011 দ্বারা প্রস্তাবিত বীরত্বমূলক পদ্ধতিও করি। তবে আপনার প্রশ্নের পরে একজন দ্রুত গুগল একটি সাম্প্রতিক কাগজ প্রকাশ করেছে যা আগ্রহীও হতে পারে: ভ্যান্ডারমনডে ম্যাট্রিক্স কতটা খারাপ? (ভিওয়াই প্যান, 2015) । (উদাহরণস্বরূপ তিনি DFT ম্যাট্রিকগুলি ভ্যান্ডারমনডে হলেও অসুস্থ নয় বলে সম্বোধন করেন ))
জিওম্যাটট 22

ধন্যবাদ @ জিওম্যাটট২। আপনাকে আমার জন্য গুগল বানাতে দুঃখিত, আমি যেমন ভেবেছিলাম আপনার কিছু ব্যক্তিগত প্রিয় উত্স থাকতে পারে।
ম্যাথু ড্রুরি

8

প্রথমটি যা আপনি যাচাই করতে চান তা হ'ল লেখক যদি কাঁচা বহুপদী বনাম অर्थোগোনাল বহুবচন সম্পর্কে কথা বলছেন ।

অরথোগোনাল বহুবর্ষের জন্য। গুণফলগুলি "বৃহত্তর" পাচ্ছে না।

এখানে দ্বিতীয় এবং 15 তম অর্ডার বহুত্বীয় বিস্তারের দুটি উদাহরণ রয়েছে। প্রথমে আমরা ২ য় অর্ডার প্রসারণের সহগটি দেখাব।

summary(lm(mpg~poly(wt,2),mtcars))

Call:
lm(formula = mpg ~ poly(wt, 2), data = mtcars)

Residuals:
   Min     1Q Median     3Q    Max 
-3.483 -1.998 -0.773  1.462  6.238 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   20.0906     0.4686  42.877  < 2e-16 ***
poly(wt, 2)1 -29.1157     2.6506 -10.985 7.52e-12 ***
poly(wt, 2)2   8.6358     2.6506   3.258  0.00286 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.651 on 29 degrees of freedom
Multiple R-squared:  0.8191,    Adjusted R-squared:  0.8066 
F-statistic: 65.64 on 2 and 29 DF,  p-value: 1.715e-11

তারপরে আমরা 15 তম অর্ডারটি দেখাই।

summary(lm(mpg~poly(wt,15),mtcars))

Call:
lm(formula = mpg ~ poly(wt, 15), data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.3233 -0.4641  0.0072  0.6401  4.0394 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)     20.0906     0.4551  44.147  < 2e-16 ***
poly(wt, 15)1  -29.1157     2.5743 -11.310 4.83e-09 ***
poly(wt, 15)2    8.6358     2.5743   3.355  0.00403 ** 
poly(wt, 15)3    0.2749     2.5743   0.107  0.91629    
poly(wt, 15)4   -1.7891     2.5743  -0.695  0.49705    
poly(wt, 15)5    1.8797     2.5743   0.730  0.47584    
poly(wt, 15)6   -2.8354     2.5743  -1.101  0.28702    
poly(wt, 15)7    2.5613     2.5743   0.995  0.33459    
poly(wt, 15)8    1.5772     2.5743   0.613  0.54872    
poly(wt, 15)9   -5.2412     2.5743  -2.036  0.05866 .  
poly(wt, 15)10  -2.4959     2.5743  -0.970  0.34672    
poly(wt, 15)11   2.5007     2.5743   0.971  0.34580    
poly(wt, 15)12   2.4263     2.5743   0.942  0.35996    
poly(wt, 15)13  -2.0134     2.5743  -0.782  0.44559    
poly(wt, 15)14   3.3994     2.5743   1.320  0.20525    
poly(wt, 15)15  -3.5161     2.5743  -1.366  0.19089    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.574 on 16 degrees of freedom
Multiple R-squared:  0.9058,    Adjusted R-squared:  0.8176 
F-statistic: 10.26 on 15 and 16 DF,  p-value: 1.558e-05

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

106

> summary(lm(mpg~poly(wt,15, raw=T),mtcars))

Call:
lm(formula = mpg ~ poly(wt, 15, raw = T), data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.6217 -0.7544  0.0306  1.1678  5.4308 

Coefficients: (3 not defined because of singularities)
                          Estimate Std. Error t value Pr(>|t|)
(Intercept)              6.287e+05  9.991e+05   0.629    0.537
poly(wt, 15, raw = T)1  -2.713e+06  4.195e+06  -0.647    0.526
poly(wt, 15, raw = T)2   5.246e+06  7.893e+06   0.665    0.514
poly(wt, 15, raw = T)3  -6.001e+06  8.784e+06  -0.683    0.503
poly(wt, 15, raw = T)4   4.512e+06  6.427e+06   0.702    0.491
poly(wt, 15, raw = T)5  -2.340e+06  3.246e+06  -0.721    0.480
poly(wt, 15, raw = T)6   8.537e+05  1.154e+06   0.740    0.468
poly(wt, 15, raw = T)7  -2.184e+05  2.880e+05  -0.758    0.458
poly(wt, 15, raw = T)8   3.809e+04  4.910e+04   0.776    0.447
poly(wt, 15, raw = T)9  -4.212e+03  5.314e+03  -0.793    0.438
poly(wt, 15, raw = T)10  2.382e+02  2.947e+02   0.809    0.429
poly(wt, 15, raw = T)11         NA         NA      NA       NA
poly(wt, 15, raw = T)12 -5.642e-01  6.742e-01  -0.837    0.413
poly(wt, 15, raw = T)13         NA         NA      NA       NA
poly(wt, 15, raw = T)14         NA         NA      NA       NA
poly(wt, 15, raw = T)15  1.259e-04  1.447e-04   0.870    0.395

Residual standard error: 2.659 on 19 degrees of freedom
Multiple R-squared:  0.8807,    Adjusted R-squared:  0.8053 
F-statistic: 11.68 on 12 and 19 DF,  p-value: 2.362e-06

আমি সিনট্যাক্সটি সঠিক কিনা তা নিশ্চিত নই, তবে কেন আপনি অরথোগোনাল ভি কাঁচের ফলাফলের সাথে অন্য কিছু দিয়ে summary(lm(mpg~poly(wt,2),mtcars)); summary(lm(mpg~poly(wt,5),mtcars)); summary(lm(mpg~ wt + I(wt^2),mtcars)); summary(lm(mpg~ wt + I(wt^2) + I(wt^3) + I(wt^4) + I(wt^5),mtcars))
আলাদা করবেন না

@ আন্তনিপরেল্লদা ভাল পরামর্শ, আমি আবার সংশোধন করব। বিটিডাব্লু, আমরা কাঁচা সম্প্রসারণ সহজ করতে পারিpoly(x,2,raw=T)
হাইটাও ডু

ভাল কৌশল ... আমি অনুমান করি, তাহলে, আপনি 15 টি আটকে থাকতে পারেন এবং করতে পারেন summary(lm(mpg~poly(wt,15, raw=T),mtcars))। গুণাগুণগুলিতে বিশাল প্রভাব!
আন্তনি পরল্লদা

@ Seanv507 দ্বারা আমার উত্তর সম্পর্কে একটি মন্তব্য আমাকে নিম্নলিখিত সম্পর্কে আগ্রহী করে তুলেছে। আপনি যদি অर्थোগোনাল বহুপদী ব্যবহার করেন, এবং বহিরাগতদের প্রতি সংবেদনশীলতা হ্রাস করতে চান, তাহলে স্ট্যান্ডার্ড রিজ রিগ্রেশন কি যথেষ্ট হবে? বা উচ্চতর-অর্ডার, আরও দোলক বহুপদীগুলির জন্য এখনও ওজন-অর্ডার প্রয়োজন? (আমার মনে হয় পরবর্তীকালের মতো, যেমন একটি ডিএফটি ম্যাট্রিক্স অর্থোথোনাল, তবে কম ওজনের উচ্চতর ফ্রিকোয়েন্সিগুলির প্রয়োজন হবে this এই বিশেষ ক্ষেত্রে আমার অভিজ্ঞতা (অপ্রীতিকর) হয়েছে!)
জিওম্যাটট২

3

অভিষেক, আপনি ঠিক বলেছেন যে সহগের যথার্থতা উন্নতি করা নির্ভুলতার উন্নতি করবে।

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

আমি মনে করি প্রশস্ততার বিষয়টি বিশপের সামগ্রিক পয়েন্টের তুলনায় অপ্রাসঙ্গিক - এটি সীমিত তথ্যে একটি জটিল মডেল ব্যবহার করা 'ওভারফিটিং' বাড়ে। তার উদাহরণে 10 ডেটাপপয়েন্টগুলি 9 টি মাত্রিক বহুপদী (যেমন 10 ভেরিয়েবল এবং 10 অজানা) অনুমান করতে ব্যবহৃত হয়।

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

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

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

নোট করুন যে অরথোগোনাল পলিনোমিয়ালগুলি ব্যবহারের কোনও প্রভাব নেই (আমি ০.০ এর একটি অফসেট যুক্ত করেছি যাতে অर्थোগোনাল এবং কাঁচা বহুবর্ষগুলি একে অপরের শীর্ষে না থাকে)

require (penalized)
poly_order<-9
x_long<-seq(0,1, length.out = 100)
nx<-10
x<-seq(0,1, length.out = nx)
noise<- rnorm(nx, 0, 1)
noise_scale<-0.2
y<-sin(2*pi*x)+noise_scale*noise

training_data<-data.frame(x=x,y=y)
y_long<-sin(2*pi*x_long)

plot(x,y, col ='blue',ylim=c(-1.5,1.5))
lines(x_long,y_long,col='green')

polyfit_raw<-lm(y~poly(x,poly_order,raw=TRUE),data=training_data)
summary(polyfit_raw)

polyfit_raw_ridge1<-penalized(y,~poly(x,poly_order,raw=TRUE), model='linear', data=training_data, lambda2=0.0001, maxiter=10000, standardize=TRUE)

polyfit_orthog<-lm(y~poly(x,poly_order),data=training_data)
summary(polyfit_orthog)

pred_raw<-predict(polyfit_raw,data.frame(x=x_long))
pred_ortho<-predict(polyfit_orthog,data.frame(x=x_long))
pred_raw_ridge<-predict(polyfit_raw_ridge1,data=data.frame(x=x_long))[,'mu']
lines(x_long,pred_raw,col='red')
# add 0.1 offset to make visible
lines(x_long,pred_ortho+0.1,col='black')
lines(x_long,pred_raw_ridge,col='purple')
legend("bottomleft",legend=c('data sin(2 pi x) + noise','sin(2 pi x)', 
                             'raw poly','orthog poly +0.1 offset','raw poly + ridge regression'),
       fill=c('blue','green','red','black','purple'))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.