পরিসংখ্যানগত শিক্ষার উপাদানগুলির ২.২ অনুশীলন করুন


10

পাঠ্য পুস্তক প্রথমে এর মাধ্যমে কিছু 2-শ্রেণির ডেটা উত্পন্ন করে:

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

যা দেয়:

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

এবং তারপরে এটি জিজ্ঞাসা করে:

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

আমি প্রথমে এই গ্রাফিকাল মডেলটির সাহায্যে এটি সমাধান করার চেষ্টা করছি:

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

যেখানে লেবেল, নির্বাচিত গড়ের এর সূচক এবং হ'ল ডেটা পয়েন্ট। এই দেবেch(1h10)mhcx

Pr(xmhc)=N(mhc,I/5)Pr(mhch,c=blue)=N((1,0)T,I)Pr(mhch,c=orange)=N((0,1)T,I)Pr(h)=110Pr(c)=12

অন্যদিকে, সীমানা হয় । বায়েশিয়ান শাসন সহ, আমরা আছে{x:Pr(c=bluex)=Pr(c=orangex)}

Pr(cx)=Pr(xc)Pr(c)cPr(xc)Pr(c)Pr(xc)=hmhcPr(h)Pr(mhch,c)Pr(xmhc)

তবে পরে আমি দেখতে পেয়েছি যে সমস্যা সেটিংসটি প্রতিসম হয় তাই এটি সীমানা হিসাবে ফলন করতে পারে । যদি হওয়ার সময় যদি সমস্যাটি সীমানা জিজ্ঞাসা করে তবে সমীকরণটিতে পরামিতি অন্তর্ভুক্ত থাকবে যা আমি মনে করি এটি অনুশীলনের উদ্দেশ্য হওয়ার সম্ভাবনা কম।x=ymhc40

তাহলে আমি কি কিছু ভুল বুঝছি? ধন্যবাদ.

উত্তর:


8

আমার মনে হয় না যে আপনি এর প্রদত্ত উপলব্ধির জন্য বেইস সিদ্ধান্তের সীমানার জন্য বিশ্লেষণাত্মক অভিব্যক্তি খুঁজে পাওয়ার কথা । একইভাবে আমি সন্দেহ করি যে আপনি বিতরণের সীমানাটি পেয়ে বলে আপনি সন্দেহ করেছেন যেহেতু এটি উল্লিখিত হিসাবে দ্বারা কেবল ।mkmkx=y

আমার মনে হয় আপনার যা দেখাতে হবে তা হল এমন একটি প্রোগ্রাম যা এর প্রদত্ত উপলব্ধির জন্য সিদ্ধান্তের সীমানা গণনা করতে পারে । এটি এবং মানগুলির একটি গ্রিড সেট করে , শ্রেণি-শর্তসাপেক্ষ ঘনত্বগুলি গণনা করে এবং পয়েন্টগুলি যেখানে তারা সমান এটি সন্ধান করে।mkxy

এই কোডটি এটিতে একটি ছুরিকাঘাত। আইআইআরসি এর সাথে আধুনিক প্রয়োগিত পরিসংখ্যানগুলিতে এস এর সাথে সিদ্ধান্তের সীমানা গণনা করার কোড রয়েছে , তবে আমি এখনই খুব সহজে পাইনি।

# for dmvnorm/rmvnorm: multivariate normal distribution
library(mvtnorm)

# class-conditional density given mixture centers
f <- function(x, m)
{
    out <- numeric(nrow(x))
    for(i in seq_len(nrow(m)))
        out <- out + dmvnorm(x, m[i, ], diag(0.2, 2))
    out
}

# generate the class mixture centers
m1 <- rmvnorm(10, c(1,0), diag(2))
m2 <- rmvnorm(10, c(0,1), diag(2))
# and plot them
plot(m1, xlim=c(-2, 3), ylim=c(-2, 3), col="blue")
points(m2, col="red")

# display contours of the class-conditional densities
dens <- local({
    x <- y <- seq(-3, 4, len=701)
    f1 <- outer(x, y, function(x, y) f(cbind(x, y), m1))
    f2 <- outer(x, y, function(x, y) f(cbind(x, y), m2))
    list(x=x, y=y, f1=f1, f2=f2)
})

contour(dens$x, dens$y, dens$f1, col="lightblue", lty=2, levels=seq(.3, 3, len=10),
        labels="", add=TRUE)

contour(dens$x, dens$y, dens$f2, col="pink", lty=2, levels=seq(.3, 3, len=10),
        labels="", add=TRUE)

# find which points are on the Bayes decision boundary
eq <- local({
    f1 <- dens$f1
    f2 <- dens$f2
    pts <- seq(-3, 4, len=701)
    eq <- which(abs((dens$f1 - dens$f2)/(dens$f1 + dens$f2)) < 5e-3, arr.ind=TRUE)
    eq[,1] <- pts[eq[,1]]
    eq[,2] <- pts[eq[,2]]
    eq
})
points(eq, pch=16, cex=0.5, col="grey")


ফলাফল:

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


3

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

আমি এই সূত্রটি কখনই অর্জন করতে সক্ষম হব না, তাই বিশ্লেষণাত্মক সমাধানটি কুশ্রী হতে হবে না এবং তারপরে গুগলে এটি অনুসন্ধান করার জন্য আমি কেবল কৃতিত্ব গ্রহণ করি। ভাগ্যক্রমে, এটি লেখকরা কিছু চমৎকার লোক, পৃষ্ঠা 7-7 সরবরাহ করেছেন


2

আমি চাই আগে প্রতি কোডের উপরে হোঁচট খেয়েছি; কেবল নিচে প্রতি কিছু বিকল্প কোড তৈরি করা ফিনসিহড ... এর মূল্য কী

set.seed(1)
library(MASS)

#create original 10 center points/means for each class 
I.mat=diag(2)
mu1=c(1,0);mu2=c(0,1)
mv.dist1=mvrnorm(n = 10, mu1, I.mat)
mv.dist2=mvrnorm(n = 10, mu2, I.mat)

values1=NULL;values2=NULL

#create 100 observations for each class, after random sampling of a center point, based on an assumed bivariate probability distribution around each center point  
for(i in 1:10){
  mv.values1=mv.dist1[sample(nrow(mv.dist1),size=1,replace=TRUE),]
  sub.mv.dist1=mvrnorm(n = 10, mv.values1, I.mat/5)
  values1=rbind(sub.mv.dist1,values1)
}
values1

#similar as per above, for second class
for(i in 1:10){
  mv.values2=mv.dist2[sample(nrow(mv.dist2),size=1,replace=TRUE),]
  sub.mv.dist2=mvrnorm(n = 10, mv.values2, I.mat/5)
  values2=rbind(sub.mv.dist2,values2)
}
values2

#did not find probability function in MASS, so used mnormt
library(mnormt)

#create grid of points
grid.vector1=seq(-2,2,0.1)
grid.vector2=seq(-2,2,0.1)
length(grid.vector1)*length(grid.vector2)
grid=expand.grid(grid.vector1,grid.vector2)



#calculate density for each point on grid for each of the 100 multivariates distributions
prob.1=matrix(0:0,nrow=1681,ncol=10) #initialize grid
for (i in 1:1681){
  for (j in 1:10){
    prob.1[i,j]=dmnorm(grid[i,], mv.dist1[j,], I.mat/5)  
  }
}
prob.1
prob1.max=apply(prob.1,1,max)

#second class - as per above
prob.2=matrix(0:0,nrow=1681,ncol=10) #initialize grid
for (i in 1:1681){
  for (j in 1:10){
    prob.2[i,j]=dmnorm(grid[i,], mv.dist2[j,], I.mat/5)  
  }
}
prob.2
prob2.max=apply(prob.2,1,max)

#bind
prob.total=cbind(prob1.max,prob2.max)
class=rep(1,1681)
class[prob1.max<prob2.max]=2
cbind(prob.total,class)

#plot points
plot(grid[,1], grid[,2],pch=".", cex=3,col=ifelse(class==1, "coral", "cornflowerblue"))

points(values1,col="coral")
points(values2,col="cornflowerblue")

#check - original centers
# points(mv.dist1,col="coral")
# points(mv.dist2,col="cornflowerblue")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.