এসভিএম ইনপুট ভেরিয়েবলের জন্য আর-তে জেনেটিক-অ্যালগোরিদম পরিবর্তনশীল নির্বাচন কীভাবে সম্পাদন করবেন?


9

আমি কিছু ডেটা শ্রেণিবদ্ধ করার জন্য একটি এসভিএম তৈরি করতে আর এর কার্নলব প্যাকেজটি ব্যবহার করছি ।

এসভিএম ভালভাবে কাজ করছে যে এটি একটি শালীন নির্ভুলতার 'পূর্বাভাস' সরবরাহ করে, তবে আমার ইনপুট ভেরিয়েবলগুলির তালিকা আমার চেয়ে বড় এবং বিভিন্ন ভেরিয়েবলের আপেক্ষিক গুরুত্ব সম্পর্কে আমি অনিশ্চিত।

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

এই জিএ বাস্তবায়নের চেষ্টা করার সময় কোন আর প্যাকেজটি ব্যবহার করা উচিত (এবং সম্ভবত একটি সংক্ষিপ্ত psuedo- উদাহরণ) চয়ন করতে আমি কিছুটা সহায়তা চাই।

আমি বাইরে সেখানে (রাঃ জি / পি প্যাকেজ একটি সবচেয়ে তাকিয়ে করেছি RGP , genalg , subselect , GALGO ), কিন্তু আমি দেখতে আমি সুস্থতা কার্যকারিতা এবং ইনপুট আমার অংশ হিসেবে আমার ksvm ফাংশন মধ্যে পাস হবে ধারণার দিক থেকে সংগ্রাম করছি জনসংখ্যা পুল হিসাবে পরিবর্তনশীল অ্যারে ...?

সঠিক দিক থেকে কোনও সহায়তা, চিন্তাভাবনা বা ধাক্কা কৃতজ্ঞতার সাথে পেল।

ধন্যবাদ

কোডগুলি যা পরে এটির পরে নীচে যোগ করা সমাধান করে

# Prediction function to be used for backtesting
pred1pd = function(t) {
print(t)
##add section to select the best variable set from those available using GA
  # evaluation function - selects the best indicators based on miminsied training error
mi.evaluate <- function(string=c()) {
    tmp <- data[(t-lookback):t,-1]
    x <- string
    tmp <- tmp[,x==1]
    tmp <- cbind(data[(t-lookback):t,1],tmp)
    colnames(tmp)[1] <- "targets"
    trainedmodel = ksvm(targets ~ ., data = tmp, type = ktype, kernel="rbfdot", kpar=list(sigma=0.1), C = C, prob.model = FALSE, cross = crossvalid)
    result <- error(trainedmodel)
    print(result)
    }

## monitor tge GA process
monitor <- function(obj) {
minEval = min(obj$evaluations);
plot(obj, type="hist");
}

## pass out the GA results; size is set to be the number of potential indicators
gaResults <- rbga.bin(size=39, mutationChance=0.10, zeroToOneRatio=10, evalFunc=mi.evaluate, verbose=TRUE, monitorFunc=monitor, popSize=50, iters=3, elitism=10)

## now need to pull out the best chromosome and rebuild the data frame based on these results so that we can train the model

bestChro <- gaResults$population[1,]
newData <- data[,-1]
newData <- newData[,bestChro==1]
newData <- cbind(data[,1],newData)
colnames(newData)[1] <- "targets"
print(colnames(newData))

# Train model using new data set
model = trainSVM(newData[(t-lookback):t, ], ktype, C, crossvalid)
# Prediction
pred = as.numeric(as.vector(predict(model, newData[t+1, -1], type="response")))
# Print for user inspection
print(pred)
}

উত্তর:


7

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

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


5
+1 প্রতিবার জেনেটিক অ্যালগরিদমের সাথে বৈশিষ্ট্য নির্বাচন করার সময় একটি মিষ্টি কুকুরছানা মারা যায়।

@ এমবিকিউ এলএল! (সম্ভবত আমি যা চেয়েছিলাম তার চেয়ে কমপক্ষে আরও ছয়টি চরিত্র টাইপ করা দরকার ছিল))
ডিকরান মার্শুপিয়াল

1
@ এমবিকিউ কুকুরছানা এবং বিড়ালছানাগুলি এটি উপস্থিত হবে, যদি আমার ফলাফলগুলি কিছু
অতিক্রম

@ এমবিকিউ আমি এই মুহুর্তে যে কাগজটি লিখছি তার জন্য জিএ সহ কিছু বৈশিষ্ট্য নির্বাচন করার পরিকল্পনা করছি (এটি কাজ করার প্রত্যাশা করে না, তবে কিছু ডেটাসেটের বিস্তৃত অনুসন্ধানের জন্য খুব বেশি বৈশিষ্ট্য রয়েছে)। আফসোস ফিদো!
ডিকরান মার্শুপিয়াল

@ ডিক্রানমারসুপিয়াল ওয়েল, আমি কেবল আপনাকে আমার কাঠের কয়েকটি সরঞ্জাম দিয়ে প্রাক ফিল্টারিংয়ের চেষ্টা করার জন্য আমন্ত্রণ জানাতে পারি (;

2

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


আপনি কোড পোস্ট করতে আপত্তি করতে চান?
বি_মিনার

@ বি_মিনার দেরি করার জন্য দুঃখিত, আমি এসও-তে এসেছি কিছুক্ষণ পরে। আর এর পরেও আমি এই সমস্যাটির সাথে লড়াই করে যাচ্ছিলাম। আমার পুরানো ফাইলগুলির মধ্যে আমার একটি নজর ছিল এবং আমি মনে করি নীচের কোডটি এটি সমাধান করেছে - আশা করি এটি সাহায্য করবে:added above
tfb

2
(অস্বীকৃতি: আইএমএইচও জেনেটিক অ্যালগরিদম স্ট্যাটিসটিকাল মডেলগুলির জন্য আরও খারাপ অপটিমাইজারগুলির মধ্যে রয়েছে They তারা খুব খারাপ উপায়ে পারফরম্যান্স অনুমানের ক্ষেত্রে বৈকল্পিকতাটি ব্যবহার করছে)। সুতরাং: কমপক্ষে সত্যিকারের স্বতন্ত্র পরীক্ষার ডেটা দিয়ে আপনার চূড়ান্ত মডেলটি পরীক্ষা করে দেখুন!
এসবিএক্স 21'12
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.