র্যান্ডম ফরেস্ট ল্যান্ড কভার শ্রেণিবিন্যাস কীভাবে সম্পাদন করবেন?


32

এটি আগের পোস্টের ফলোআপ: ল্যান্ড কভার শ্রেণিবিন্যাসের জন্য মেশিন লার্নিং অ্যালগরিদম

দেখে মনে হচ্ছে দূরবর্তী সেন্সিং বিশ্বে র‌্যান্ডম ফরেস্ট (আরএফ) শ্রেণিবদ্ধকরণ পদ্ধতিটি বেশ গতি অর্জন করছে। আমি আরএফ এর অনেক শক্তির কারণে বিশেষত আগ্রহী:

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

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

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


আমি এই রাস্টার-শ্রেণিবিন্যাসটি বোঝার চেষ্টা করছি, যেহেতু আমি 10 সেমি-রেজোলিউশন চিত্র সহ একটি আরএফ-শ্রেণিতে (প্রজাতি-বিতরণের জন্য) কাজ করছি। সুতরাং আমি মনে করি আমি বিন্দু আকারগুলি ইনপুট করতে পারি না, তবে কেবল রাস্টার। আমি কীভাবে * পিএনজি বা * টিফ-ফাইলে এগিয়ে যেতে সক্ষম?
স্টিভম্ব

উত্তর:


29

আমি নিশ্চিত না যে ডেটা "সংগ্রহ" করে আপনি কী বোঝাতে চেয়েছেন তা আমি বুঝতে পেরেছি। আপনি যদি ক্লাসের শীর্ষস্থানীয় ডিজিটাইজেশন এবং কার্যনির্বাহীকরণের কথা উল্লেখ করছেন তবে এটি জিআইএসে সেরা করা হয়। অনেকগুলি বিনামূল্যে বিকল্প রয়েছে যা উপযুক্ত হবে (i.e, QGIS, GRASS) RA আপনার শ্রেণিবদ্ধকরণকে প্রশিক্ষণ দেওয়ার জন্য আদর্শভাবে আপনার মাঠের ডেটা থাকবে।

র্যান্ডম অরণ্য ব্যবহার করে শ্রেণিবিন্যাসের প্রক্রিয়াটি মোটামুটি সোজা এগিয়ে। আপনি "rgdal" বা "maptools" ব্যবহার করে আপনার প্রশিক্ষণ ডেটাতে (যেমন একটি পয়েন্ট শেফফিল) পড়তে পারেন raster::stack, ব্যবহার করে আপনার বর্ণাল ডেটাতে পড়তে পারেন , ব্যবহার করে আপনার প্রশিক্ষণ পয়েন্টগুলিতে রাস্টার মান নির্ধারণ করুন raster:extractএবং তারপরে এটি পাস করুনrandomForest। আরএফকে শ্রেণিবিন্যাসের উদাহরণ হিসাবে স্বীকৃতি দেওয়ার জন্য আপনাকে আপনার "শ্রেণি" কলামটি একটি ফ্যাক্টারে বাধ্য করতে হবে। একবার আপনার কাছে উপযুক্ত মডেল হয়ে গেলে আপনি পূর্বাভাস ফাংশনটি ব্যবহার করতে পারবেন, এটি পাস করে আপনার রাস্টার স্ট্যাক। রাস্টার পূর্বাভাস ফাংশন সম্পর্কিত নির্দিষ্টগুলি ছাড়াও পূর্বাভাস দেওয়ার জন্য আপনাকে স্ট্যান্ডার্ড আর্গুমেন্টগুলি পাস করতে হবে। রাস্টার প্যাকেজটিতে রাস্টারগুলিকে "মেমরির বাইরে" পরিচালনা করার ক্ষমতা রয়েছে এবং এগুলি স্মৃতিশক্তি নিরাপদ এমনকি খুব বড় রাস্টারদেরও রয়েছে। রাস্টার পূর্বাভাস ফাংশনের একটি যুক্তি হ'ল "ফাইলের নাম" যা কোনও রাস্টারকে ডিস্কে লিখিত থাকতে পারে। মাল্টিক্লাস সমস্যার জন্য আপনাকে টাইপ = "প্রতিক্রিয়া" এবং সূচক = 1 সেট করতে হবে যা আপনার ক্লাসগুলির একটি পূর্ণসংখ্যার রাস্টার আউটপুট দেবে।

কয়েকটি সতর্কতা রয়েছে যেগুলি লক্ষ করা উচিত:

  1. আপনার প্রতিক্রিয়া পরিবর্তনশীল ( y ) বা সমীকরণের ডান দিকে কোনও অংশের ( x ) এর 32 টিরও বেশি স্তর থাকতে পারে না
  2. আপনার ক্লাস অবশ্যই ভারসাম্যপূর্ণ হতে হবে। একটি 30% নিয়ম অনুসরণ করা ভাল, এটি হ'ল যদি আপনার ক্লাসে অন্য কোনও তুলনায় 30% এর বেশি পর্যবেক্ষণ থাকে তবে আপনার সমস্যা ভারসাম্যহীন হয়ে যায় এবং ফলাফলগুলি পক্ষপাতদুষ্ট হতে পারে
  3. এটি একটি ভুল নাম যা আরএফের পক্ষে বেশি মানা যায় না। আপনি যদি আপনার জুড়ির সাথে সম্পর্কিত হন তবে আপনি মডেলটির চেয়ে বেশি মানিয়ে নিতে পারেন। এটি এড়ানোর একটি ভাল উপায় একটি প্রাথমিক মডেল চালানো এবং ত্রুটি স্থিতিশীলতার প্লট করা। থাম্বের নিয়ম হিসাবে, আমি ntree প্যারামিটারের জন্য ত্রুটি স্থিতিশীল করতে প্রয়োজনীয় বুটস্ট্র্যাপগুলির সংখ্যা 2X পছন্দ করি। এর কারণ ভেরিয়েবল ইন্টারঅ্যাকশন ত্রুটির চেয়ে ধীর গতিতে স্থিতিশীল হয়। আপনি যদি মডেলটিতে অনেকগুলি ভেরিয়েবল অন্তর্ভুক্ত না করেন তবে আপনি এই প্যারামিটারটি দিয়ে অনেক বেশি রক্ষণশীল হতে পারেন।
  4. পরিবর্তনশীল গুরুত্বের পরিমাপ হিসাবে নোড বিশুদ্ধতা ব্যবহার করবেন না। নির্ভুলতার গড় হার হ্রাসের মতো এটি অনুমোদিত নয়।

আমার কাছে CRAN- এ উপলব্ধ rfUtilities প্যাকেজে মডেল নির্বাচন, শ্রেণি ভারসাম্যহীনতা এবং বৈধতার জন্য ফাংশন রয়েছে ।

আপনাকে সূচনা করার জন্য এখানে কিছু সাধারণ কোড।

require(sp)
require(rgdal)
require(raster)
require(randomForest)

# CREATE LIST OF RASTERS
rlist=list.files(getwd(), pattern="img$", full.names=TRUE) 

# CREATE RASTER STACK
xvars <- stack(rlist)      

# READ POINT SHAPEFILE TRAINING DATA
sdata <- readOGR(dsn=getwd() layer=inshape)

# ASSIGN RASTER VALUES TO TRAINING DATA
v <- as.data.frame(extract(xvars, sdata))
  sdata@data = data.frame(sdata@data, v[match(rownames(sdata@data), rownames(v)),])

# RUN RF MODEL
rf.mdl <- randomForest(x=sdata@data[,3:ncol(sdata@data)], y=as.factor(sdata@data[,"train"]),
                       ntree=501, importance=TRUE)

# CHECK ERROR CONVERGENCE
plot(rf.mdl)

# PLOT mean decrease in accuracy VARIABLE IMPORTANCE
varImpPlot(rf.mdl, type=1)

# PREDICT MODEL
predict(xvars, rf.mdl, filename="RfClassPred.img", type="response", 
        index=1, na.rm=TRUE, progress="window", overwrite=TRUE)

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

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

5

আমি জানি যে এই থ্রেডটি খানিকটা পুরানো, তবে যে কেউ রিমোট সেন্সিং ডেটার শ্রেণিবিন্যাসের চেষ্টা করতে চায় তাদের জন্য Rএকটি খুব প্রতিশ্রুতিবদ্ধ নতুন প্যাকেজ প্রকাশ করা হয়েছে।

install.packages("RSToolbox")

এটি উভয় নিরীক্ষণযোগ্য ও তদারকি করা শ্রেণিবিন্যাস (এলোমেলো বন ব্যবহার করে) এর সাথে ফাংশন নিয়ে আসে। আরও তথ্য এখানে পাওয়া যাবে - http://bleutner.github.io/RStoolbox/


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

হাই জেফরি, এই ভয়ে যে আমি প্যাকেজের লেখক নই। তার বিবরণটি আমি সরবরাহ করা লিঙ্কে পাওয়া যাবে।
জেপিডি


0

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


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

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