আমি কীভাবে পিসিএ থেকে বেরিয়ে আসব তা ব্যাখ্যা করতে পারি?


14

একটি বিশ্ববিদ্যালয়ের কার্যভার অংশ হিসাবে, আমাকে মোটামুটি বিশাল, মাল্টিভারিয়েট (> 10) কাঁচা ডেটা সেটে ডেটা প্রাক প্রসেসিং করতে হবে। আমি শব্দের কোনও অর্থেই কোনও পরিসংখ্যানবিদ নই, তাই কী হচ্ছে তা নিয়ে আমি কিছুটা বিভ্রান্ত। সম্ভবত একটি হাস্যকর সরল প্রশ্ন - এর জন্য আগেই ক্ষমা চেয়েছি - বিভিন্ন উত্তর দেখার পরে এবং পরিসংখ্যান-বক্তৃতার মধ্য দিয়ে আমার মাথা ঘুরানোর চেষ্টা করছে head

আমি এটি পড়েছি:

  • পিসিএ আমাকে আমার ডেটার মাত্রিকতা হ্রাস করতে দেয়
  • এটি এমন বৈশিষ্ট্য / মাত্রাগুলি মার্জ করে / মুছে ফেলে যা অনেক কিছুকে সংযুক্ত করে (এবং এভাবে কিছুটা অপ্রয়োজনীয় হয়)
  • এটি কোভেরিয়েন্স ডেটাতে আইজেনভেেক্টরগুলি সন্ধান করে এটি করে ( এটি শিখতে আমি যে সুন্দর টিউটোরিয়ালটি অনুসরণ করেছি তা ধন্যবাদ )

যা মহান.

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

PersonID     Sex     Age Range    Hours Studied     Hours Spent on TV      Test Score     Coursework Score 
1            1       2            5                 7                      60             75
2            1       3            8                 2                      70             85 
3            2       2            6                 6                      50             77
...          ...     ...          ...               ...                    ...            ...

আমি কীভাবে কোনও ফলাফলকে ব্যাখ্যা করব তা আমি নিশ্চিত নই।

আমি অনলাইনে দেখেছি বেশিরভাগ টিউটোরিয়াল আমাকে পিসিএর একটি খুব গাণিতিক দৃষ্টিভঙ্গি দেয়। আমি এটি সম্পর্কে কিছু গবেষণা করেছি এবং সেগুলি অনুসরণ করেছি - তবে আমার কাছে এটির অর্থ কী তা এখনও আমি পুরোপুরি নিশ্চিত নই, যিনি আমার সামনে থাকা তথ্যগুলির এই গাদা থেকে কিছু অর্থের অর্থ বের করার চেষ্টা করছেন।

কেবলমাত্র আমার ডেটাতে পিসিএ সম্পাদন করা (একটি পরিসংখ্যান প্যাকেজ ব্যবহার করে) একটি এনএক্সএন ম্যাট্রিক্সের সংখ্যা ছড়িয়ে দেয় (যেখানে এন মূল মাত্রার সংখ্যা), যা আমার কাছে সম্পূর্ণ গ্রীক।

আমি কীভাবে পিসিএ করতে পারি এবং যা পাই তা কীভাবে আমি মূল মাত্রার ক্ষেত্রে সরল ইংরেজিতে রাখতে পারি?


3
আপনার উদাহরণের ডেটাতে ডেটা প্রকারের মিশ্রণ দেখানো হয়: লিঙ্গটি দ্বৈতপ্রাকৃত, বয়স নিয়মিত, অন্য 3 টি অন্তর (এবং যারা বিভিন্ন ইউনিটে রয়েছেন)। রৈখিক পিসিএ করা অন্তর্বর্তী ডেটার জন্য সঠিক (তবে আপনাকে ইউনিটগুলির কারণে প্রথমে those ভেরিয়েবলগুলি জেড-স্ট্যান্ডার্ড করতে হবে)। পিসিএ বাইনারি বা দ্বিধাত্বক তথ্য জন্য উপযুক্ত কিনা তা বিতর্কযোগ্য । রৈখিক পিসিএতে আপনার অর্ডিনাল ডেটা ব্যবহার করা উচিত নয়। তবে আপনার উদাহরণের ডেটা সহ প্রধান প্রশ্ন: এটির সাথে পিসিএ কেন করা উচিত নয় ; এক্ষেত্রে এটি কী বোঝাতে পারে?
ttnphns

এই পিডিএফ পিসিএ প্রয়োগের জন্য দরকারী । আপনার অন্যান্য পিসিএ ফলাফলের "অর্থ" বর্ণনা করার জন্য এখানে অন্যান্য পোস্টগুলি ভাল কাজ করে।
এএমএস

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

3
আমি কেবলমাত্র আপনাকে বর্তমানে পিসিএ (এই সাইটেও) আরও পড়ার জন্য সুপারিশ করতে পারি। অনেক অনিশ্চয়তা অবশ্যই চলে যাবে।
ttnphns

উপরে অনেক সূক্ষ্ম লিঙ্ক, এখানে একটি সংক্ষিপ্ত উদাহরণ যা "আপনাকে" পিসিএ সম্পর্কে একটি ভাল অনুভূতি দিতে পারে যেমন ব্যবহারিক উদাহরণ এবং খুব কম, যদি কিছু না হয়, প্রযুক্তিগত দিক দিয়ে reg সাইট.stat.psu.edu/~ajw13/stat505/fa06/16_princomp/…
লিবিয়াথন

উত্তর:


15

আপনার পোস্ট করা টিউটোরিয়ালটির 13-20 পৃষ্ঠাগুলি পিসিএ মাত্রা হ্রাসের জন্য কীভাবে ব্যবহৃত হয় তার একটি খুব স্বজ্ঞাত জ্যামিতিক ব্যাখ্যা সরবরাহ করে।

আপনি যে 13x13 ম্যাট্রিক্সের কথা উল্লেখ করেছেন সম্ভবত এটি সম্ভবত "লোডিং" বা "রোটেশন" ম্যাট্রিক্স (আমি অনুমান করছি যে আপনার মূল ডেটাতে 13 ভেরিয়েবল ছিল?) যা দুটির (সমতুল্য) উপায়ে ব্যাখ্যা করতে পারে:

  1. আপনার লোডিং ম্যাট্রিক্সের (পরম মানগুলির) কলামগুলি বর্ণনা করে যে প্রতিটি পরিবর্তনশীল প্রতিটি উপাদানকে আনুপাতিকভাবে "অবদান" কত পরিমাণে দেয়।

  2. ঘূর্ণন ম্যাট্রিক্স আপনার ঘূর্ণন ম্যাট্রিক্স দ্বারা সংজ্ঞায়িত ভিত্তিতে আপনার ডেটা ঘোরান। সুতরাং আপনার কাছে যদি 2-D ডেটা থাকে এবং আপনার রোটেশন ম্যাট্রিক্স দিয়ে আপনার ডেটাটিকে গুণিত করে তোলে তবে আপনার নতুন এক্স-অক্ষটি প্রথম মূল উপাদান এবং নতুন Y- অক্ষটি হবে দ্বিতীয় প্রধান উপাদান।

সম্পাদনা: এই প্রশ্নটি অনেক জিজ্ঞাসা করা হয়, তাই আমি মাত্র মাত্রা হ্রাসের জন্য যখন পিসিএ ব্যবহার করি তখন কী চলছে সে সম্পর্কে একটি বিস্তৃত দর্শনীয় ব্যাখ্যা দিতে যাচ্ছি।

Y = x + শব্দ থেকে উত্পন্ন 50 পয়েন্টের একটি নমুনা বিবেচনা করুন। প্রথম মূল উপাদানটি y = x রেখার সাথে শুয়ে থাকবে এবং দ্বিতীয় উপাদানটি নীচের চিত্রের মতো y = -x রেখার সাথে থাকবে।

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

দিক অনুপাতটি এটিকে কিছুটা মিস করে তবে এর জন্য আমার শব্দটি গ্রহণ করুন যে উপাদানগুলি অরথোগোনাল। পিসিএ প্রয়োগ করা আমাদের ডেটা ঘুরবে যাতে উপাদানগুলি x এবং y অক্ষ হয়ে যায়:

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

রূপান্তরের আগের ডেটাগুলি চেনাশোনা হয়, পরে ডেটাগুলি ক্রস হয়। এই বিশেষ উদাহরণে, তথ্য এত আবর্তিত হয় নি যতটা এটাকে y অক্ষের = -2x জুড়ে ফ্লিপ হয়েছে, কিন্তু আমরা ঠিক যেমন সহজে সাধারণত্ব ক্ষতি ছাড়া এটি সত্যিই একটি ঘূর্ণন করতে Y- অক্ষ উল্টানো পারতেন যেমন এখানে বর্ণিত

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

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

আংশিকভাবে আমাদের মূল ডেটাটি মূল অক্ষের দিকে ঘোরানো (ঠিক আছে, প্রজেক্টিং) করে পুনরুদ্ধার করতে পারি।

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

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

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

set.seed(123)
y2 = x + rnorm(n,0,.2)
mydata = cbind(x,y2)
m2 = colMeans(mydata)

p2 = prcomp(mydata, center=F, scale=F)
reduced2= cbind(p2$x[,1], rep(0, nrow(p2$x)))
recovered = reduced2 %*% p2$rotation

plot(mydata, xlim=c(-1.5,1.5), ylim=c(-1.5,1.5), main='Data with principal component vectors')
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+abs(p2$rotation[1,1])
       ,y1=m2[2]+abs(p2$rotation[2,1])
       , col='red')
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+p2$rotation[1,2]
       ,y1=m2[2]+p2$rotation[2,2]
       , col='blue')

plot(mydata, xlim=c(-1.5,1.5), ylim=c(-1.5,1.5), main='Data after PCA transformation')
points(p2$x, col='black', pch=3)
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+abs(p2$rotation[1,1])
       ,y1=m2[2]+abs(p2$rotation[2,1])
       , col='red')
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+p2$rotation[1,2]
       ,y1=m2[2]+p2$rotation[2,2]
       , col='blue')
arrows(x0=mean(p2$x[,1])
      ,y0=0
      ,x1=mean(p2$x[,1])
      ,y1=1
      ,col='blue'
       )
arrows(x0=mean(p2$x[,1])
       ,y0=0
       ,x1=-1.5
       ,y1=0
       ,col='red'
)
lines(x=c(-1,1), y=c(2,-2), lty=2)


plot(p2$x, xlim=c(-1.5,1.5), ylim=c(-1.5,1.5), main='PCA dimensionality reduction')
points(reduced2, pch=20, col="blue")
for(i in 1:n){
  lines(rbind(reduced2[i,], p2$x[i,]), col='blue')
}

plot(mydata, xlim=c(-1.5,1.5), ylim=c(-1.5,1.5), main='Lossy data recovery after PCA transformation')
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+abs(p2$rotation[1,1])
       ,y1=m2[2]+abs(p2$rotation[2,1])
       , col='red')
arrows(x0=m2[1], y0=m2[2]
       ,x1=m2[1]+p2$rotation[1,2]
       ,y1=m2[2]+p2$rotation[2,2]
       , col='blue')
for(i in 1:n){
  lines(rbind(recovered[i,], mydata[i,]), col='blue')
}
points(recovered, col='blue', pch=20)

5
ডেভিড, দয়া করে "রোটেশন ম্যাট্রিক্স" (ওরফে আইজেনভেেক্টর) এবং "লোডিং ম্যাট্রিক্স" বিনিময়যোগ্য পদ ব্যবহার থেকে বিরত থাকুন। পবিত্রতার জন্য এবং মানুষকে বিভ্রান্ত না করার জন্য। পিসিএ-এ লোডিংগুলি তাদের আইজেনুয়ালুগুলি দ্বারা স্বাভাবিক করার পরে আইজেনভেেক্টর । ধন্যবাদ.
ttnphns

3
@ পিটিএফএনএস আমি মনে করি এটি আপনি কোন প্যাকেজটি ব্যবহার করেন তা সম্পূর্ণরূপে নির্ভর করে। প্রায়শই এই পদগুলি সম্পূর্ণ পরিবর্তিত হয়। এখানে "লোডিং" এর ব্যবহারটি বিবেচনা করুন: utdallas.edu/~herve/abdi-awPCA2010.pdf । আর ফাংশনটি উল্লেখ করুন prcompযেখানে লোডিং ম্যাট্রিক্স কেবলমাত্র ম্যাট্রিক্স যার কলামগুলি ইউনিট ইগেনভেেক্টর। আমি মনে করি আপনি অকারণে প্রযুক্তিগত হয়ে চলেছেন এবং বেশিরভাগ ক্ষেত্রে আমি বিশ্বাস করি যে এই পদগুলি বিনিময়যোগ্যভাবে ব্যবহৃত হয়।
ডেভিড মার্কস

4
দুঃখিত, তবে আমি দ্বিমত পোষণ করব। কারণ: মনে রাখবেন যে লোডিংগুলি পিসিএ এবং ফ্যাক্টর বিশ্লেষণ উভয় অর্থবহ (এবং একই অর্থে!) Are লোডিংগুলি পারস্পরিক সম্পর্ক / সমবায়িকাগুলির সাথে সরাসরি তুলনীয়। আইজেনভেেক্টর হ'ল ঘূর্ণন কোসাইন। ফ্যাক্টর বিশ্লেষণ অনেক পদ্ধতি (ঘূর্ণন সাথে মোকাবিলা না নিষ্কাশন ফেজ)। সুতরাং, দুটি পদ মিশ্রন প্রকৃতপক্ষে শিক্ষার্থীদের জন্য বিভ্রান্তিকর এবং এড়ানো উচিত।
ttnphns

ছোট বিন্দু: সঠিক বানান সর্বদা এবং কেবল "প্রধান" হয়, "নীতি" নয় " আমি সে অনুযায়ী সম্পাদনা করেছি, তবে একটি চিত্র আমি সম্পাদনা করতে পারি না।
নিক কক্স

1
আর একটি ভিজ্যুয়াল এখানে পাওয়া যাবে setosa.io/ev/pr
صول- প্রতিযোগী-

2

আমি বলব যে আপনার প্রশ্নটি কেবলমাত্র নয় cross validatedবরং এটিও একটি যোগ্য প্রশ্ন stack overflow, যেখানে আপনাকে কীভাবে আর (.. ইত্যাদি) এর মাত্রা হ্রাস বাস্তবায়িত করতে হবে তা কার্যকরভাবে আপনাকে সনাক্ত করতে সাহায্য করবে যাতে কোন কলাম / ভেরিয়েবলের তারতম্যের ক্ষেত্রে আরও ভাল অবদান রাখতে পারে? পুরো ডেটাসেট।

পিসিএ (প্রিন্সিপাল কম্পোনেন্ট অ্যানালাইসিস) এর এসভিডি (একক মান মূল্য ক্ষয়) এর মতো একই কার্যকারিতা রয়েছে scaleএবং ডেটাসেটে / জেড-ট্রান্সফর্মেশন প্রয়োগের পরে এগুলি হুবহু একই প্রক্রিয়া ।

এখানে আরও কিছু সংস্থান রয়েছে যা আপনি আরও ভাল বোঝার জন্য অর্ধ ঘন্টা যেতে পারেন।

আমি কীভাবে এসভিডি বাস্তবায়ন করতে হবে এবং প্রতিটি উপাদান কী করে তা বুঝতে আপনাকে সহায়তা করার জন্য আমি একটি স্পষ্ট কোডিং সমাধান দিতে সক্ষম নই, তবে লোকেরা দুর্দান্ত, এখানে কিছু খুব তথ্যমূলক পোস্ট রয়েছে যা আমি এসভিডি এর অ্যাপ্লিকেশন দিকটি ধরে ফেলতাম এমনকি যদি আমি কীভাবে একটি 3by3 এসভিডি সমস্যা গণনা করতে হবে তা জানুন .. :)

  1. জেফ লিকের দ্বারা কোর্সেরা ডেটা বিশ্লেষণ ক্লাস: ভিডিও লেকচার / ক্লাস নোটস
  2. একটি খুব তথ্যপূর্ণ ছাত্র পোস্ট
  3. আমেরিকান গণিত সমিতি থেকে একটি পোস্ট।

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

1

পিসিএতে আপনি কিছু ভেরিয়েবলগুলিতে ডেটা বর্ণনা করতে চান। আপনি সমস্ত ভেরিয়েবলের চেয়ে কম ভেরিয়েবলগুলিতে একই তথ্য পেতে পারেন। উদাহরণস্বরূপ, অধ্যয়নকৃত ঘন্টা এবং পরীক্ষার স্কোর পারস্পরিক সম্পর্কযুক্ত হতে পারে এবং আমাদের উভয়কেই অন্তর্ভুক্ত করতে হবে না।

আপনার উদাহরণে, যাক আপনার উদ্দেশ্যটি হ'ল একজন শিক্ষার্থী / ব্যক্তি কতটা "ভাল" তা পরিমাপ করা। এই সমস্ত ভেরিয়েবলের দিকে তাকানো, এটি কীভাবে করবেন তা দেখতে বিভ্রান্তিকর হতে পারে। পিসিএ আমাদের পরিষ্কারভাবে দেখতে দেয় যে কোন শিক্ষার্থীরা ভাল / খারাপ।

যদি প্রথম প্রধান উপাদানটি ডেটাগুলির প্রকরণের সর্বাধিক ব্যাখ্যা করে তবে আমাদের কেবল এটিই প্রয়োজন। আপনি এই উপাদান এবং সমস্ত ভেরিয়েবলের মধ্যে পারস্পরিক সম্পর্ক খুঁজে পাবেন। "বৃহত্তর" সম্পর্কিতগুলি গুরুত্বপূর্ণ ভেরিয়েবলকে বোঝায় sign উদাহরণস্বরূপ, প্রথম উপাদানটি অধ্যয়নকৃত ঘন্টা এবং পরীক্ষার স্কোরের সাথে দৃ with়তার সাথে সম্পর্কিত হতে পারে। সুতরাং প্রথম উপাদানটির উচ্চ মানগুলি অধ্যয়নের সময় এবং পরীক্ষার স্কোরের উচ্চ মানের নির্দেশ করে।

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