টুকরোখের লিনিয়ার ডেটা ফিট করুন


18

টুকরোজ লিনিয়ার তবে শোরগোলের ডেটা ফিট করার শক্তিশালী উপায় কী?

আমি একটি সিগন্যাল পরিমাপ করছি, যা প্রায় বেশ কয়েকটি লিনিয়ার অংশ নিয়ে গঠিত। আমি ট্রানজিশনগুলি সনাক্ত করতে ডেটাতে অ্যাটোম্যাটিকভাবে কয়েকটি লাইন ফিট করতে চাই।

ডেটাসেটটিতে কয়েক হাজার পয়েন্ট রয়েছে, যার মধ্যে 1-10 টি বিভাগ রয়েছে এবং আমি বিভাগগুলির সংখ্যা জানি number

আমি স্বয়ংক্রিয়ভাবে কী করতে চাই তার এটি একটি উদাহরণ।

এখানে চিত্র বর্ণনা লিখুন


আমি মনে করি না যতক্ষণ না আপনি ব্রেক-পয়েন্টগুলির অবস্থানগুলি সঠিকভাবে জানতে চান, লিনিয়ার অংশের সংক্ষিপ্ত দৈর্ঘ্যের জন্য আপনার অনুমান কত এবং কোন নমুনায় কতগুলি নমুনা রয়েছে তা সঠিকভাবে না জানানো না হলে এই প্রশ্নের যুক্তিযুক্ত উত্তর দেওয়া যাবে বলে আমি মনে করি না রূপান্তর অঞ্চল। যদি আপনার চিত্রের অনুভূমিক অক্ষের লেবেলগুলি নমুনা সংখ্যা হয়, তবে থেকে পর্যন্ত স্প্যানে দুটি ট্রানজিশন সহ , সরল-রেখার অংশগুলি আরও দীর্ঘকালীন হওয়ার চেয়ে কার্যটি আরও কঠিন in নমুনা)। এক্স [ 0 ]x[5]x[0]
দিলিপ সরোতে

@ দিলিপ সরওয়াতে আমি প্রয়োজনীয়তাগুলির সাথে প্রশ্নটি আপডেট করেছি (বিটিডব্লু xaxis টেসলার চৌম্বকীয় ক্ষেত্র)
পি 3trus

আপনি যদি ম্যাটল্যাব কার্ভ ফিটিং টুলবক্স
Rhei

উত্তর:


12

আমি নির্লিপ্তভাবে (কেবলমাত্র 3 টি বিভাগ ব্যবহার করে) দুটি পদ্ধতির চেষ্টা করেছি। অবশ্যই সেখানে অনুরাগী পদ্ধতি থাকবে।

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

এখানে চিত্র বর্ণনা লিখুন

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

এখানে চিত্র বর্ণনা লিখুন


দুর্দান্ত উত্তর বলে মনে হচ্ছে। অবদান রাখার জন্য ধন্যবাদ।
জেসন আর

7

x[n]

  • x[n]y[n]

    y[n]={1,if |(x[n+1]x[n])(x[n]x[n1])|<ϵ,0,otherwise.
    ϵx[n1],x[n],x[n+1](n1,x[n1])(n,x[n])(n,x[n])(n+1,x[n+1])
  • y[n]1011ϵ

  • y[n]x[3]x[88]x[94]x[120]x[129], ইত্যাদি। তারা কোথায় ছেদ করে তা জানতে ডান এবং বি বাম দিকে প্রসারিত করুন; তারা কোথায় ছেদ করে ইত্যাদি অনুসন্ধান করতে ডান এবং সি বাম দিকে প্রসারিত করুন অভিনন্দন, আপনার কাছে এখন আপনার ডেটার জন্য একটি অবিচ্ছিন্ন এবং টুকরোজ লিনিয়ার মডেল রয়েছে।


পুরোপুরি আমার উত্তর চুরি! =)
ফোনন

আইডিয়াটি ইন্টারেস্টিং করছে কিন্তু দুঃখের সাথে সংকেতের শব্দের কারণে আমি ভাল ফল পাচ্ছি না।
P3trus

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

4

(বছর পরে) টুকরোজা-লিনিয়ার ফাংশনগুলি ডিগ্রি 1 এর স্প্লাইজ যা বেশিরভাগ স্প্লাইন ফিটারগুলি করতে বলা যেতে পারে। scipy.interplate.UnivariateSpline উদাহরণস্বরূপ চালানো যেতে পারে k=1 এবং একটি স্মুথিং প্যারামিটার s, যা আপনার সাথে খেলতে হবে - স্কিপি-ইন্টারপোলেশন-ইউনিভারিটি-স্প্লাইনগুলি সহ দেখুন
মতলব-এ, কীভাবে বেছে নেওয়া যায়- নট দেখুন

যোগ করা হয়েছে: অনুকূল নটগুলি খুঁজে পাওয়া সহজ নয়, কারণ অনেকগুলি স্থানীয় অপটিমা থাকতে পারে। পরিবর্তে, আপনি ইউনিivariateSpline একটি লক্ষ্য s, ত্রুটির যোগফল ^ 2 প্রদান, এবং এটি নট সংখ্যা নির্ধারণ করুন। ফিটিংয়ের পরে, get_residual()ত্রুটির প্রকৃত যোগফল 2 get_knots()ডলার এবং নটসটি পাবেন। একটি ছোট পরিবর্তন sগিঁটগুলিকে অনেকগুলি পরিবর্তন করতে পারে, বিশেষত উচ্চ শব্দে - ymmv।
প্লট শো বিভিন্ন জন্য এলোমেলোভাবে টুকরোজা-লিনিয়ার ফাংশন + শব্দকে ফিট করে s

টুকরোজ ধ্রুবকগুলির ফিটিংয়ের জন্য, পদক্ষেপ সনাক্তকরণ দেখুন । এটি পিডব্লিউ রৈখিক জন্য ব্যবহার করা যেতে পারে? জানি না; শোরগোলের ডেটা আলাদা করে শুরু করে গোলমাল বাড়িয়ে দেবে, ভুল।

অন্যান্য পরীক্ষামূলক কাজগুলি এবং / অথবা কাগজপত্র বা কোডের লিঙ্কগুলি স্বাগত জানানো হবে। লিঙ্কগুলির একটি দম্পতি:
নটস-হিসাবে-পরামিতিগুলির সাথে টুকরোড়া-লিনিয়ার-রিগ্রেশন-
লিনিয়ার স্প্লিংগুলি যেখানে ঘনক-রিগ্রেশন-স্প্লাইনের জন্য নট-নির্বাচন-গিঁট দেওয়া হয় তার জন্য খুব সংবেদনশীল

এটি একটি জটিল সমস্যা এবং বেশিরভাগ লোকেরা কেবল পরীক্ষা এবং ত্রুটির দ্বারা নটগুলি নির্বাচন করে।
জনপ্রিয়তার মধ্যে ক্রমবর্ধমান এক পদ্ধতির পরিবর্তে দণ্ডিত রিগ্রেশন স্প্লিন ব্যবহার করা।


মার্চ 2014 যোগ করা হয়েছে: ডাইনামিক প্রোগ্রামিং হ'ল নেস্টেড সাব-প্রবলেমগুলির সমস্যাগুলির জন্য একটি সাধারণ পদ্ধতি:

optimal k lines
    = optimal k - 1 lines up to some x
    + cost of the last line x to the end
over x  (all x in theory, nearby x in practice)

ডায়নামিক প্রোগ্রামিং খুব চতুর, তবে এটি কি এই কাজের জন্য নৃশংস শক্তি + হিউরিস্টিক্সকে পরাস্ত করতে পারে? এমআইটি 6.006 ইন্ট্রো টু অ্যালগোরিদমের
অধীনে এরিক ডামাইন দ্বারা দুর্দান্ত কোর্সের নোটগুলি দেখুন
গুগল সেগমেন্টেড লিনিয়ার রিগ্রেশন
এছাড়াও জন হেনরি সিনড্রোম।


এখানে চিত্র বর্ণনা লিখুন


সমস্যাটি, কমপক্ষে স্কিপি সহ নটগুলির অবস্থান। স্কিপি সমান ব্যবধানযুক্ত নট ব্যবহার করে।
P3trus

@ P3trus, শুরু করার জন্য হ্যাঁ, তবে তারপরে তারা স্থানান্তর করতে পারবেন - প্লটটি দেখুন। যাইহোক এটি মোট ত্রুটি লক্ষ্য করে, নট নয়।
ডেনিস

@ P3trus আপনি কি মাল্টিভারিয়েট রিগ্রেশন স্প্লাইন পদ্ধতিটি ব্যবহার করার চেষ্টা করেছেন যা ব্রেকআপপয়েন্টগুলি স্বয়ংক্রিয়ভাবে পুনরাবৃত্তভাবে নির্বাচন করে? cs.rtu.lv/jekabsons/regression.html
অতুল

@ আতুল ইঙ্গলে, আফিক ব্রেক / পয়েন্ট / গিঁট নির্বাচন একই সমস্যা, যাই হোক না কেন স্প্লিট ফিটার থেকে। যদি আপনি আর / রিগ্রেশন লোকেদের থেকে আলাদা অ্যালগরিদম সম্পর্কে জানেন তবে দয়া করে একটি লিঙ্ক পোস্ট করতে পারেন?
ডেনিস

কি আর / ম্যাট্লাবের প্যাকেজগুলি সন্ধান করছে যা অভিযোজিত রিগ্রেশন স্প্লিন করে? এখানে: cran.r-project.org/web/packages/earth/index.html cran.r-project.org/web/packages/mda/index.html এবং মতলব এ আরআরএল্যাব যেটির জন্য আমি ইতিমধ্যে লিঙ্কটি পোস্ট করেছি।
অতুল ইনলে

0

ডেরাইভেটিভ নিন এবং প্রায় ধ্রুবক মানের ক্ষেত্রগুলি সন্ধান করুন। আদর্শ অঞ্চলগুলির +/- opeালু সহ সেই অঞ্চলগুলি অনুসন্ধান করার জন্য আপনাকে অ্যালগরিদম তৈরি করতে হবে এবং এটি আপনাকে section বিভাগটির জন্য রেখার opeাল দেবে। বিভাগীয় শ্রেণিবিন্যাস করার আগে আপনি কিছুটা স্মুথিং যেমন স্লাইডিং গড়ের মতো করতে চান। পরবর্তী পদক্ষেপটি হবে y-ছেদ পাওয়া, যা সেই সময়ে তুচ্ছ হওয়া উচিত।


ডেরাইভেটিভ অফউল শোরগোল হতে পারে। আমি মনে করি না যে আমি এটি সুপারিশ করব।
রবার্ট ব্রিস্টো-জনসন

0

এল 1 ট্রেন্ড ফিল্টার ব্যবহার করা অন্য একটি ধারণা:

কাগজ

অনলাইন উদাহরণ


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