পিসিএ কোভরিয়েন্স ম্যাট্রিক্স ("প্রধান অক্ষ") এর ইগেনভেেক্টরগুলিকে গণনা করে এবং তাদের এজনভ্যালু (ব্যাখ্যাযোগ্য বৈকল্পিক পরিমাণ) অনুসারে বাছাই করে। কেন্দ্রিক তথ্যগুলি তখন মূল উপাদানগুলিতে ("স্কোর") উত্পন্ন করতে এই মূল অক্ষগুলিতে প্রক্ষেপণ করা যেতে পারে। মাত্রিকতা হ্রাস করার উদ্দেশ্যে, কেউ কেবলমাত্র মূল উপাদানগুলির একটি উপসেট রাখতে পারে এবং বাকিগুলি ফেলে দিতে পারে। (একজন সাধারণ ব্যক্তির পিসিএর পরিচিতির জন্য এখানে দেখুন ))
যাক হতে সাথে ডেটা ম্যাট্রিক্স সারি (ডাটা পয়েন্ট) এবং টি কলাম নেই (ভেরিয়েবল, বা বৈশিষ্ট্য)। প্রতিটি সারি থেকে গড় ভেক্টর বিয়োগের পরে , আমরা কেন্দ্রিক ডেটা ম্যাট্রিক্স পাই । যাক হতে কিছু ম্যাট্রিক্স eigenvectors যে আমরা ব্যবহার করতে চান; এগুলি বেশিরভাগ ক্ষেত্রে সবচেয়ে বড় ইগেনুয়ালুসের সাহায্যে আইজিনিভেক্টর হয়। তারপর পিসিএ অনুমান ম্যাট্রিক্স ( "স্কোর") কেবল দ্বারা দেওয়া হবে ।Xrawn×pnpμXVp×kkkn×kZ=XV
এটি নীচের চিত্রটিতে চিত্রিত হয়েছে: প্রথম সাবপ্লটটি কিছু কেন্দ্রিক ডেটা দেখায় (আমি লিঙ্কযুক্ত থ্রেডে আমার অ্যানিমেশনগুলিতে একই ডেটা ব্যবহার করি ) এবং প্রথম মূল অক্ষটিতে তার অনুমানগুলি দেখায় । দ্বিতীয় সাবপ্ল্লট কেবল এই অভিক্ষেপের মানগুলি দেখায়; মাত্রিকতা দুটি থেকে এককে হ্রাস করা হয়েছে:
এই মূল উপাদানটি থেকে মূল দুটি ভেরিয়েবল পুনর্গঠন করতে সক্ষম হতে, আমরা এটিকে আবার with মাত্রায় ম্যাপ করতে পারি । প্রকৃতপক্ষে, প্রতিটি পিসির মান একই ভেক্টরের উপর স্থাপন করা উচিত যা প্রক্ষেপণের জন্য ব্যবহৃত হয়েছিল; সাবপ্লটগুলি 1 এবং 3 এর তুলনা করুন ফলাফলটি পরে । আমি এটি উপরের তৃতীয় সাব-প্লটটিতে প্রদর্শন করছি। চূড়ান্ত পুনর্গঠন get পেতে আমাদের এটিকে গড় ভেক্টর করতে হবে:pV⊤X^=ZV⊤=XVV⊤X^rawμ
PCA reconstruction=PC scores⋅Eigenvectors⊤+Mean
মনে রাখবেন যে কেউ প্রথম সাবপ্লট থেকে সরাসরি তৃতীয়তে যেতে পারে ম্যাট্রিক্স দিয়ে গুণ করে ; একে প্রজেকশন ম্যাট্রিক্স বলা হয় । যদি সমস্ত আইজেনভেেক্টর ব্যবহার করা হয়, তবে হ'ল পরিচয় ম্যাট্রিক্স (কোনও মাত্রিকতা হ্রাস করা হয় না, সুতরাং "পুনর্নির্মাণ" নিখুঁত)। যদি কেবলমাত্র ইগেনভেেক্টরগুলির একটি উপসেট ব্যবহার করা হয় তবে এটি পরিচয় নয়।XVV⊤pVV⊤
এটি পিসি স্পেসে একটি নির্বিচার পয়েন্ট point জন্য কাজ করে ; এটি space মাধ্যমে মূল স্থানটিতে ম্যাপ করা যায় ।zx^=zV⊤
নেতৃস্থানীয় পিসি বাতিল (অপসারণ)
কখনও কখনও কেউ নেতৃস্থানীয় পিসিগুলিকে রাখার পরিবর্তে এবং বাকিটিকে (উপরের মতো) বাদ দেওয়ার পরিবর্তে নেতৃস্থানীয় পিসিগুলির এক বা কয়েকটি বাদ দিতে (অপসারণ করতে) এবং বাকিটি রাখতে চায়। এক্ষেত্রে সমস্ত সূত্রগুলি হুবহু একই থাকে তবে এর যে মূল বিষয়টিকে বাতিল করতে চান তার বাদে সমস্ত মূল অক্ষ থাকা উচিত । অন্য কথায়, মধ্যে সর্বদা যে সমস্ত পিসি রাখতে চায় সেগুলি অন্তর্ভুক্ত করা উচিত।VV
পারস্পরিক সম্পর্ক সম্পর্কিত পিসিএ সম্পর্কে সাবধান
যখন পিসিএ পারস্পরিক সম্পর্ক ম্যাট্রিক্সে করা হয় (এবং কোভরিয়েন্স ম্যাট্রিক্সে নয়), কাঁচা তথ্য only কেবল বিয়োগ করে কেন্দ্রিক হয় না তবে প্রতিটি কলামকে এর মানক বিচ্যুতি দ্বারা বিভাজন । এই ক্ষেত্রে, আসল ডেটা পুনর্গঠন করতে one দিয়ে of এর কলামগুলি ব্যাক-স্কেল করতে হবে এবং কেবল তখনই গড় ভেক্টর ।XrawμσiX^σiμ
চিত্র প্রক্রিয়াকরণের উদাহরণ
এই বিষয়টি প্রায়শই চিত্র প্রক্রিয়াকরণের প্রসঙ্গে আসে। লেনাকে বিবেচনা করুন - চিত্র প্রক্রিয়াকরণের সাহিত্যের অন্যতম মানক চিত্র (এটি কোথা থেকে এসেছে তা জানতে লিঙ্কগুলি অনুসরণ করুন)। বামদিকে নীচে, আমি এই চিত্রের গ্রেস্কেল বৈকল্পিক প্রদর্শন করি (ফাইলটি এখানে উপলভ্য )।512×512
আমরা একটি হিসাবে এই গ্রেস্কেল ইমেজ চিকিৎসা করতে পারে তথ্য ম্যাট্রিক্স । আমি এটিতে পিসিএ সম্পাদনা করি এবং প্রথম 50 প্রধান উপাদান ব্যবহার করে গণনা করি । ফলাফলটি ডানদিকে প্রদর্শিত হয়।512×512XrawX^raw
এসভিডি ফিরিয়ে দেওয়া হচ্ছে
পিসিএ একচেটিয়া মান পচন (এসভিডি) এর সাথে খুব ঘনিষ্ঠভাবে সম্পর্কিত, এসভিডি এবং পিসিএর মধ্যে সম্পর্ক দেখুন
। কীভাবে পিসিএ করতে এসভিডি ব্যবহার করবেন? বিস্তারিত জানার জন্য. যদি একটি ম্যাট্রিক্স এসভিডি-এড হিসাবে এবং একটি মাত্রিক ভেক্টর নির্বাচন করে যা "হ্রাস" স্পেসের পয়েন্টটি উপস্থাপন করে এর মাত্রা, তাহলে এটি ফিরে ম্যাপ মাত্রা এক সঙ্গে গুন প্রয়োজন ।n×pXX=USV⊤kzUkpS⊤1: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