কীভাবে একটি নিউরাল নেটওয়ার্ক মডেলটিকে প্রশিক্ষণ এবং যাচাই করবেন?


33

আমি নিউরাল নেটওয়ার্কগুলির সাথে মডেলিংয়ে নতুন, তবে আমি পর্যবেক্ষণের ডেটা ভালভাবে ফিট করে এমন সমস্ত উপলভ্য ডেটা পয়েন্ট সহ একটি নিউরাল নেটওয়ার্ক স্থাপন করতে সক্ষম হয়েছি। নিউটাল প্যাকেজটির সাহায্যে নিউরাল নেটওয়ার্কটি আরয়ে করা হয়েছিল:

require(nnet)      
##33.8 is the highest value
mynnet.fit <- nnet(DOC/33.80 ~ ., data = MyData, size = 6, decay = 0.1, maxit = 1000)      
mynnet.predict <- predict(mynnet.fit)*33.80  
mean((mynnet.predict - MyData$DOC)^2) ## mean squared error was 16.5      

আমি যে তথ্যটি বিশ্লেষণ করছি তা নীচের মত দেখাচ্ছে, যেখানে ডিওসিটি হল পরিবর্তনশীল যা মডেল করতে হবে (প্রায় 17,000 পর্যবেক্ষণ রয়েছে):

      Q  GW_level Temp   t_sum   DOC
1 0.045    0.070 12.50     0.2 11.17
2 0.046    0.070 12.61     0.4 11.09
3 0.046    0.068 12.66     2.8 11.16
4 0.047    0.050 12.66     0.4 11.28
5 0.049    0.050 12.55     0.6 11.45
6 0.050    0.048 12.45     0.4 11.48

এখন, আমি পড়েছি যে মডেলটি 70% ডেটা পয়েন্টের সাথে প্রশিক্ষিত হওয়া উচিত, এবং 30% ডেটা পয়েন্টের সাথে বৈধ হওয়া উচিত। আমি এটা কিভাবে করবো? আমার কোন কাজগুলি ব্যবহার করতে হবে?

আকার এবং ক্ষয়ের জন্য প্যারামিটারগুলি গণনা করতে আমি ক্যারেট প্যাকেজ থেকে ট্রেনের ফাংশনটি ব্যবহার করেছি।

require(caret)
my.grid <- expand.grid(.decay = c(0.5, 0.1), .size = c(5, 6, 7))
mynnetfit <- train(DOC/33.80 ~ ., data = MyData, method = "nnet", maxit = 100, tuneGrid = my.grid, trace = f)

যে কোনও সরাসরি সহায়তা বা অন্যান্য ওয়েবসাইট / পোস্টের লিঙ্কেজ প্রশংসিত হয়।


6
প্রকৃতপক্ষে, ট্রেন / পরীক্ষার বিভাজন পদ্ধতিটি সাবপার, কারণ আপনার অ্যালগরিদমের পারফরম্যান্স আপনার পছন্দসই বিভাজন পয়েন্টের ভিত্তিতে কিছুটা আলাদা হতে পারে (আমি ৫% পার্থক্য দেখেছি ...)। আরও ভাল পদ্ধতি ক্রস বৈধতা।
জন ডুয়েস্ট

উত্তর:


36

ম্যাক্স কুহানের ক্যারেট ম্যানুয়াল - মডেল বিল্ডিং একটি দুর্দান্ত সূচনা স্থান।

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

আপনার ডেটা সেটকে প্রশিক্ষণ এবং পরীক্ষার সেটে বিভক্ত করতে আপনি ক্যারেটে তৈরিডেটা পার্টিশন () ফাংশনটি ব্যবহার করতে পারেন। আমি গাড়ী প্যাকেজ থেকে প্রেস্টিজ ডেটা সেট ব্যবহার করে এটি পরীক্ষা করেছি, এতে আয়ের বিষয়ে শিক্ষার স্তর এবং পেশাগত মর্যাদার সাথে সম্পর্কিত তথ্য রয়েছে:

library(car)
library(caret)
trainIndex <- createDataPartition(Prestige$income, p=.7, list=F)
prestige.train <- Prestige[trainIndex, ]
prestige.test <- Prestige[-trainIndex, ]

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

এখন আপনি প্রশিক্ষণ সেটটিতে আপনার মডেলকে প্রশিক্ষণ দিতে পারেন:

my.grid <- expand.grid(.decay = c(0.5, 0.1), .size = c(5, 6, 7))
prestige.fit <- train(income ~ prestige + education, data = prestige.train,
    method = "nnet", maxit = 1000, tuneGrid = my.grid, trace = F, linout = 1)    

পাশাপাশি: একটি রিগ্রেশন (বনাম শ্রেণিবদ্ধকরণ) সমস্যার সাথে কাজ করার জন্য নেট পেতে আমাকে লাইনআউট প্যারামিটার যুক্ত করতে হয়েছিল। অন্যথায় আমি মডেল থেকে সমস্ত 1 গুলি পূর্বাভাসিত মান হিসাবে পেয়েছি।

তারপরে আপনি পরীক্ষার ডেটা সেট ব্যবহার করে ফিট অবজেক্টে প্রিভিডিকে কল করতে পারেন এবং ফলাফলগুলি থেকে আরএমএসই গণনা করতে পারেন:

prestige.predict <- predict(prestige.fit, newdata = prestige.test)
prestige.rmse <- sqrt(mean((prestige.predict - prestige.test$income)^2)) 

আপনার ম্যাক্স কুহান লিঙ্কটি মারা গেছে বলে মনে হচ্ছে।
এনগ্রুস্টুডেন্ট - মনিকা

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