কীভাবে পিসিএ বিপরীত করবেন এবং বেশ কয়েকটি মূল উপাদান থেকে মূল ভেরিয়েবল পুনর্গঠন করবেন?


113

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

বিকল্পভাবে, কেউ কীভাবে ডেটা থেকে বেশ কয়েকটি মূল উপাদানগুলি সরিয়ে বা ফেলে দিতে পারে?

অন্য কথায়, কিভাবে পিসিএ বিপরীত?


একথা বিবেচনা করে যে পিসিএ একক মানের মান পঁচন (এসভিডি) এর সাথে নিবিড়ভাবে সম্পর্কিত, একই প্রশ্নটি নিম্নলিখিত হিসাবে জিজ্ঞাসা করা যেতে পারে: কীভাবে এসভিডি বিপরীত করা যায়?


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

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

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

1
থমাস ধন্যবাদ আমি মনে করি আমাদের মতভেদ আছে, চ্যাট বা মেটাতে এটি আলোচনা করে খুশি । খুব সংক্ষেপে: (1) প্রতিটি প্রশ্নের উত্তর পৃথকভাবে দেওয়া আরও ভাল হতে পারে, তবে কঠোর বাস্তবতা এটি ঘটে না। অনেক প্রশ্ন কেবল উত্তরহীন থাকে, যেমন আপনার সম্ভবত থাকতে পারে। (২) এখানকার সম্প্রদায় জেনেরিক জবাবগুলি অনেকের পক্ষে কার্যকরভাবে পছন্দ করে; আপনি কী ধরণের উত্তর সর্বাধিক উত্সাহিত করতে পারেন তা দেখতে পারেন। (3) গণিত সম্পর্কে সম্মত হন, তবে সে কারণেই আমি এখানে আর কোড দিয়েছি! (৪) লিঙ্গুয়া ফ্র্যাঙ্কা সম্পর্কে মতভেদ; ব্যক্তিগতভাবে, আমি আর।
অ্যামিবা

@ অ্যামিবা আমি ভীত, আমি কীভাবে কথিত আড্ডা খুঁজে পাব জানি না কারণ আমি এর আগে কখনও মেটা আলোচনায় অংশ নিইনি।
টমাস ব্রাউন

উত্তর:


147

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

যাক হতে সাথে ডেটা ম্যাট্রিক্স সারি (ডাটা পয়েন্ট) এবং টি কলাম নেই (ভেরিয়েবল, বা বৈশিষ্ট্য)। প্রতিটি সারি থেকে গড় ভেক্টর বিয়োগের পরে , আমরা কেন্দ্রিক ডেটা ম্যাট্রিক্স পাই । যাক হতে কিছু ম্যাট্রিক্স eigenvectors যে আমরা ব্যবহার করতে চান; এগুলি বেশিরভাগ ক্ষেত্রে সবচেয়ে বড় ইগেনুয়ালুসের সাহায্যে আইজিনিভেক্টর হয়। তারপর পিসিএ অনুমান ম্যাট্রিক্স ( "স্কোর") কেবল দ্বারা দেওয়া হবে ।Xrawn×pnpμXVp×kkkn×kZ=XV

এটি নীচের চিত্রটিতে চিত্রিত হয়েছে: প্রথম সাবপ্লটটি কিছু কেন্দ্রিক ডেটা দেখায় (আমি লিঙ্কযুক্ত থ্রেডে আমার অ্যানিমেশনগুলিতে একই ডেটা ব্যবহার করি ) এবং প্রথম মূল অক্ষটিতে তার অনুমানগুলি দেখায় । দ্বিতীয় সাবপ্ল্লট কেবল এই অভিক্ষেপের মানগুলি দেখায়; মাত্রিকতা দুটি থেকে এককে হ্রাস করা হয়েছে:

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

এই মূল উপাদানটি থেকে মূল দুটি ভেরিয়েবল পুনর্গঠন করতে সক্ষম হতে, আমরা এটিকে আবার with মাত্রায় ম্যাপ করতে পারি । প্রকৃতপক্ষে, প্রতিটি পিসির মান একই ভেক্টরের উপর স্থাপন করা উচিত যা প্রক্ষেপণের জন্য ব্যবহৃত হয়েছিল; সাবপ্লটগুলি 1 এবং 3 এর তুলনা করুন ফলাফলটি পরে । আমি এটি উপরের তৃতীয় সাব-প্লটটিতে প্রদর্শন করছি। চূড়ান্ত পুনর্গঠন get পেতে আমাদের এটিকে গড় ভেক্টর করতে হবে:pVX^=ZV=XVVX^rawμ

PCA reconstruction=PC scoresEigenvectors+Mean

মনে রাখবেন যে কেউ প্রথম সাবপ্লট থেকে সরাসরি তৃতীয়তে যেতে পারে ম্যাট্রিক্স দিয়ে গুণ করে ; একে প্রজেকশন ম্যাট্রিক্স বলা হয় । যদি সমস্ত আইজেনভেেক্টর ব্যবহার করা হয়, তবে হ'ল পরিচয় ম্যাট্রিক্স (কোনও মাত্রিকতা হ্রাস করা হয় না, সুতরাং "পুনর্নির্মাণ" নিখুঁত)। যদি কেবলমাত্র ইগেনভেেক্টরগুলির একটি উপসেট ব্যবহার করা হয় তবে এটি পরিচয় নয়।XVVpVV

এটি পিসি স্পেসে একটি নির্বিচার পয়েন্ট point জন্য কাজ করে ; এটি space মাধ্যমে মূল স্থানটিতে ম্যাপ করা যায় ।zx^=zV

নেতৃস্থানীয় পিসি বাতিল (অপসারণ)

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

পারস্পরিক সম্পর্ক সম্পর্কিত পিসিএ সম্পর্কে সাবধান

যখন পিসিএ পারস্পরিক সম্পর্ক ম্যাট্রিক্সে করা হয় (এবং কোভরিয়েন্স ম্যাট্রিক্সে নয়), কাঁচা তথ্য only কেবল বিয়োগ করে কেন্দ্রিক হয় না তবে প্রতিটি কলামকে এর মানক বিচ্যুতি দ্বারা বিভাজন । এই ক্ষেত্রে, আসল ডেটা পুনর্গঠন করতে one দিয়ে of এর কলামগুলি ব্যাক-স্কেল করতে হবে এবং কেবল তখনই গড় ভেক্টর ।XrawμσiX^σiμ


চিত্র প্রক্রিয়াকরণের উদাহরণ

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

লেনা চিত্রটির দুটি গ্রেস্কেল সংস্করণ।  ডানদিকে একটি দানাদার কিন্তু স্পষ্টতই স্বীকৃত।

আমরা একটি হিসাবে এই গ্রেস্কেল ইমেজ চিকিৎসা করতে পারে তথ্য ম্যাট্রিক্স । আমি এটিতে পিসিএ সম্পাদনা করি এবং প্রথম 50 প্রধান উপাদান ব্যবহার করে গণনা করি । ফলাফলটি ডানদিকে প্রদর্শিত হয়।512×512XrawX^raw


এসভিডি ফিরিয়ে দেওয়া হচ্ছে

পিসিএ একচেটিয়া মান পচন (এসভিডি) এর সাথে খুব ঘনিষ্ঠভাবে সম্পর্কিত, এসভিডি এবং পিসিএর মধ্যে সম্পর্ক দেখুন কীভাবে পিসিএ করতে এসভিডি ব্যবহার করবেন? বিস্তারিত জানার জন্য. যদি একটি ম্যাট্রিক্স এসভিডি-এড হিসাবে এবং একটি মাত্রিক ভেক্টর নির্বাচন করে যা "হ্রাস" স্পেসের পয়েন্টটি উপস্থাপন করে এর মাত্রা, তাহলে এটি ফিরে ম্যাপ মাত্রা এক সঙ্গে গুন প্রয়োজন ।n×pXX=USVkzUkpS1:k,1:kV:,1:k


আর, মতলব, পাইথন এবং স্টাটার উদাহরণ

আমি ফিশার আইরিস ডেটাতে পিসিএ পরিচালনা করব এবং তারপরে প্রথম দুটি প্রধান উপাদান ব্যবহার করে এটি পুনর্গঠন করব। আমি পিসিএ করছি কোভেরিয়েন্স ম্যাট্রিক্সের উপর, না পারস্পরিক সম্পর্ক ম্যাট্রিক্সের উপর, অর্থাৎ আমি এখানে ভেরিয়েবলগুলি স্কেলিং করছি না। তবে আমি এখনও মাঝখানে যোগ করতে হবে। স্টাটার মতো কিছু প্যাকেজ স্ট্যান্ডার্ড সিনট্যাক্সের মাধ্যমে এটি যত্ন করে। কোডটিতে তাদের সহায়তার জন্য @ স্ট্যাসকে এবং @ কোডিওলজিস্টকে ধন্যবাদ।

আমরা প্রথম ডেটাপয়েন্টের পুনর্নির্মাণ পরীক্ষা করব, যা হ'ল:

5.1        3.5         1.4        0.2

মতলব

load fisheriris
X = meas;
mu = mean(X);

[eigenvectors, scores] = pca(X);

nComp = 2;
Xhat = scores(:,1:nComp) * eigenvectors(:,1:nComp)';
Xhat = bsxfun(@plus, Xhat, mu);

Xhat(1,:)

আউটপুট:

5.083      3.5174      1.4032     0.21353

আর

X = iris[,1:4]
mu = colMeans(X)

Xpca = prcomp(X)

nComp = 2
Xhat = Xpca$x[,1:nComp] %*% t(Xpca$rotation[,1:nComp])
Xhat = scale(Xhat, center = -mu, scale = FALSE)

Xhat[1,]

আউটপুট:

Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
   5.0830390    3.5174139    1.4032137    0.2135317

চিত্রগুলির পিসিএ পুনর্গঠনের আর উদাহরণস্বরূপ এই উত্তরটি দেখুন

পাইথন

import numpy as np
import sklearn.datasets, sklearn.decomposition

X = sklearn.datasets.load_iris().data
mu = np.mean(X, axis=0)

pca = sklearn.decomposition.PCA()
pca.fit(X)

nComp = 2
Xhat = np.dot(pca.transform(X)[:,:nComp], pca.components_[:nComp,:])
Xhat += mu

print(Xhat[0,])

আউটপুট:

[ 5.08718247  3.51315614  1.4020428   0.21105556]

নোট করুন যে এটি অন্যান্য ভাষার ফলাফল থেকে কিছুটা পৃথক slightly এর কারণ পাইথনের সংস্করণ আইরিস ডেটাসেটে ভুল রয়েছে

Stata

webuse iris, clear
pca sep* pet*, components(2) covariance
predict _seplen _sepwid _petlen _petwid, fit
list in 1

  iris   seplen   sepwid   petlen   petwid    _seplen    _sepwid    _petlen    _petwid  
setosa      5.1      3.5      1.4      0.2   5.083039   3.517414   1.403214   .2135317  

1
ম্যাটল্যাবে আপনি স্ট্যান্ডার্ড পিসিএ আউটপুটগুলি থেকে মু পুনরুদ্ধার করতে পারেন এবং ইনপুটগুলির উপাদানগুলির সংখ্যা সরবরাহ করতে পারেন।
আকসকল

2
@ আকসাকাল আমি তিনটি কোডের অংশগুলি যথাসম্ভব অনুরূপ (এবং পরিষ্কার হিসাবে) তৈরি করার চেষ্টা করেছি; বিশেষ করে, আমি গনা চেয়েছিলেন সব উপাদান দিয়ে পিসিএ চালানোর জন্য এবং শুধুমাত্র ব্যবহার করতে PCA () কল করার আগে হাত দ্বারা, এবং এছাড়াও যখন স্কোর এবং eigenvectors মধ্যে ডট পণ্য করণ উপাদান। একই ধরণটি অনুসরণ করতে আমি পাইথন কোডটি এখন পরিবর্তন করেছি। μnComp
অ্যামিবা

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

5
আইরিস হিসাবে ডেটা সেট হিসাবে লেনার প্রায় স্ট্যান্ডার্ড।
স্টাসকে

2
@ আমেবা আমি সীমান্তে আকার, বিট-গভীরতা এমনকি কালো পিক্সেলের কথা বলছিলাম। আমার কাছে একটি নির্দিষ্ট সংস্করণ নেই http://www.ece.rice.edu/~wakin/images/ : "লেনা (ওরফে" লেনা ") পরীক্ষার চিত্রের অনেকগুলি সংস্করণ উপলব্ধ আছে বলে মনে হয় Sha এই সমস্যাটি শাপিরো দ্বারা চিহ্নিত করা হয়েছিল তার 1993 এর জিরোট্রি কাগজে, এবং এটি আজ অবাকভাবে সত্যই রয়ে গেছে "
লরেন্ট দুভাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.