নিউরাল নেটওয়ার্কগুলিতে ডে বৈশিষ্ট্যের সর্বোত্তম নির্মাণ


19

রিগ্রেশন সমস্যা নিয়ে কাজ করে আমি "এক সপ্তাহের দিন" বৈশিষ্ট্যটির উপস্থাপনা সম্পর্কে ভাবতে শুরু করি। আমি ভাবছি কোন পদ্ধতিটি আরও ভালভাবে সম্পাদন করবে:

  • একটি বৈশিষ্ট্য; সোমবারের জন্য 1/7 মান; মঙ্গলবার 2/7 ...
  • 7 টি বৈশিষ্ট্য: (1, 0, 0, 0, 0, 0, 0) সোমবারের জন্য; (0, 1, 0, 0, 0, 0, 0) মঙ্গলবারের জন্য ...

নেটওয়ার্ক কনফিগারেশন পার্থক্যের কারণে এটি পরিমাপ করা কঠিন। (অতিরিক্ত ছয়টি বৈশিষ্ট্য আমার বিশ্বাসী গোপন নোডের সংখ্যায় প্রতিবিম্বিত হওয়া উচিত))

সমস্ত বৈশিষ্ট্যের সংখ্যা প্রায় 20. আমি সাধারণ ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক শিখতে সাধারণ ব্যাকপ্রপ ব্যবহার করি।


সপ্তাহের দিনের জন্য বাইনারি এনকোডিং ব্যবহার সম্পর্কে কী? 3 টি বৈশিষ্ট্য, যেখানে (0, 0, 0) রবিবার। (0, 0, 1) সোমবার এবং এর জন্য?
শামুন

এটি গণনার সময় হ্রাস করতে আরও অর্থবহ কিছুতে বৈশিষ্ট্যগুলি হ্রাস করার অতিরিক্ত সুবিধা রয়েছে
শামুন

উত্তর:


23

আপনার দ্বিতীয় প্রতিনিধিত্ব সপ্তাহের দিনের মতো শ্রেণীবদ্ধ ভেরিয়েবলগুলির জন্য বেশি traditionalতিহ্যবাহী।

এটি ডামি ভেরিয়েবলগুলি তৈরি করতেও পরিচিত এবং শ্রেণীবদ্ধ ভেরিয়েবলগুলি এনকোডিংয়ের জন্য একটি বহুল ব্যবহৃত পদ্ধতি। আপনি যদি 1-7 এনকোডিং ব্যবহার করেন তবে আপনি মডেলটিকে বলছেন যে 4 এবং 5 দিনের দিনগুলি খুব একই রকম, যখন 1 এবং 7 দিনের দিনগুলি খুব আলাদা। প্রকৃতপক্ষে, 1 এবং 7 দিন 4 ও 5 দিনের মতো একই রকম log একই যুক্তিটি মাসের দিনগুলিতে 0-30 এনকোডিং ধরে রাখে।

মাসের দিনটি একটি সামান্য কৌশলযুক্ত, কারণ প্রতি সপ্তাহে একই 7 দিন থাকে, প্রতি মাসে একই 30 দিনের হয় না: কিছু মাসে 31 দিন থাকে এবং কিছু মাসে 28 দিন থাকে। যেহেতু উভয় সপ্তাহ এবং মাস চক্রাকার হয় তাই আপনি মসৃণ রৈখিক ভেরিয়েবলগুলিতে রূপান্তর করতে ফুরিয়ার রূপান্তরগুলি ব্যবহার করতে পারেন ।

উদাহরণস্বরূপ ( আর, আমার পছন্দসই প্রোগ্রামিং ভাষা ব্যবহার করে ):

day_of_month = c(1:31, 1:28, 1:30)
day_of_year <- 1:length(day_of_month)
s = sin((2*pi)/30*day_of_month)
c = cos((2*pi)/30*day_of_month)
plot(day_of_month ~ day_of_year)
lines(15*s+15 ~ day_of_year, col='blue')
lines(15*c+15 ~ day_of_year, col='red')
legend(10, 30, c('raw', 'sin', 'cos'), c('black', 'blue', 'red'))

কাঁচ বনাম পাপ বনাম কোসাইন

(আমি সাইন / কোসাইন ভেরিয়েবলগুলি -1/1 এর চেয়ে 0/30 হওয়ার জন্য স্কেল করেছি যাতে গ্রাফটি আরও ভাল দেখায়)

যেমন আপনি দেখতে পাচ্ছেন, কাঁচা "মাসের পরিবর্তনশীল দিন" প্রতি মাসের শেষে শূন্যে ফিরে আসে, সাইন এবং কোসাইন ট্রান্সফর্মেশনগুলি একটি মসৃণ রূপান্তর করে যা এক মাসের শেষের দিনগুলিতে মডেলকে জানতে দেয় know পরের মাসের শুরুতে দিনগুলি।

আপনি নীচের হিসাবে বাকী সমস্ত পদ যুক্ত করতে পারেন:

for(i in 1:3){
  s = sin((2*pi)/30*day_of_month + 30 * i/4)
  c = cos((2*pi)/30*day_of_month + 30 * i/4)
  lines(15*s+15 ~ day_of_year, col='blue')
  lines(15*c+15 ~ day_of_year, col='red')
}
legend(10, 30, c('raw', 'sin', 'cos'), c('black', 'blue', 'red'))

সম্পূর্ণ রূপান্তর

সাইন / কোসাইন ওয়েভগুলির প্রতিটি জুড়ি একটি বৃত্ত তৈরি করে:

m <- lapply(1:4, function(i){
  as.matrix(
    data.frame(
    s = sin((2*pi)/30*day_of_month + 30 * i/4),
    c = cos((2*pi)/30*day_of_month + 30 * i/4)
    )
  )
})
m <- do.call(cbind, m)
pairs(m)

বৃত্ত এই পৃষ্ঠায় কীভাবে সাইন এবং কোসাইন তরঙ্গগুলি পরিচালনা করা যায় তার একটি সত্যই সহজ ব্যাখ্যা রয়েছে।


এটি করার কোনও নির্দিষ্ট কারণ আছে কি? আমি ভাবছি কীভাবে এটি রূপান্তরকে প্রভাবিত করতে পারে। আমার দ্বিতীয় সন্দেহটি যখন কোনও পরিবর্তনশীল এখনও শ্রেণীবদ্ধ হয় - মাসের দিনটি কী? (0 - 30)
ওপাস দোস্ত

একই জিনিস; সূচক ভেরিয়েবল ব্যবহার করুন। প্রথম এনকোডিং একটি অনুরূপ পরিমাপ প্রেরণা দেয় যা উপযুক্ত নাও হতে পারে; উদাহরণস্বরূপ, রবিবারটি কি সোমবার থেকে সত্যই সবচেয়ে ভিন্নতম দিন? এটিই এনকোডিংটি বোঝায় ...
Emre

@ ওপাসডোস্ট যদি আমার পোস্টটি আপনার প্রশ্নের জবাব দেয় তবে নির্দ্বিধায় এটির ভোট দিন এবং / অথবা চেকমার্কটি ক্লিক করে এটি গ্রহণ করুন।
জাচ

@ জ্যাখ আপনি কেন সপ্তাহের দিনটিকে (যেটি 0 থেকে 6 পর্যন্ত এনকড করা যায়) সাধারণ এবং চক্রবৃদ্ধি হিসাবে মাসের দিন হিসাবে বিবেচনা করবেন (এবং তাই ফুরিয়ার রূপান্তর ব্যবহার করুন)। এবং উভয়ই অর্ডিনাল সাইক্লিকাল হিসাবে নয় এবং তাই ফুরিয়ারটিও সপ্তাহের দিনের জন্য রূপান্তর করে?
জিপ

1
@ জিজিপ আপনি সপ্তাহের দিনের জন্যও ফুরিয়ার ব্যবহার করতে পারেন। আমার অভিজ্ঞতায়, সপ্তাহের দিনের প্রাথমিক মান হ'ল সপ্তাহের দিন এবং সাপ্তাহিক ছুটির মধ্যে পার্থক্য, যা ডামি ভেরিয়েবল (বা একটি সূচক ভেরিয়েবল) দিয়ে ক্যাপচার করা খুব সহজ।
Zach
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.