এসভিডি এবং পিসিএর মধ্যে সম্পর্ক। কীভাবে পিসিএ করতে এসভিডি ব্যবহার করবেন?


351

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

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


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


2
তার আরও লিঙ্কগুলি সহ একটি চমৎকার এবং বিস্তারিত অ্যামিবা এর উত্তর ছাড়াও আমি চেক সুপারিশ পারে এই , যেখানে পিসিএ পাশাপাশি কিছু অন্যান্য SVD ভিত্তিক কৌশল বিবেচনা করা হয়। সেখানে আলোচনাটি অ্যামিবার সাথে বীজগণিতকে প্রায় অদৃশ্যভাবে উপস্থাপন করে যা পিসিএ বর্ণনা করার সময়, speech [বা th srrt ] এর এসভিডি পচনের বিষয়ে যায় ] এর পরিবর্তে - যা কোভারিয়েন্স ম্যাট্রিক্সের ইজেনডিকম্পোজিশনের মাধ্যমে করা পিসিএর সাথে সম্পর্কিত হিসাবে এটি কেবল সুবিধাজনক। এক্স/X/n এক্সX/n1X
ttnphns

পিসিএ এসভিডির একটি বিশেষ মামলা। পিসিএর জন্য ডেটা স্বাভাবিককরণের প্রয়োজন, আদর্শভাবে একই ইউনিট। ম্যাট্রিক্স পিসিএতে nxn হয় is
Orvar Korvar

@ অরভারকোর্ভার: আপনি কোন এনএক্সএন ম্যাট্রিক্সের কথা বলছেন?
সিবিহে

উত্তর:


411

ডেটা ম্যাট্রিক্স এর আকারের হওয়া যাক যেখানে নমুনার সংখ্যা এবং হল ভেরিয়েবলের সংখ্যা। আসুন ধরে নেওয়া যাক এটি কেন্দ্রিক , অর্থাৎ কলামের অর্থ বিয়োগ করা হয়েছে এবং এখন শূন্যের সমান। এন × পি এন পিXn×pnp

তারপর সহভেদাংক ম্যাট্রিক্স দেওয়া হয় । এটা একটা প্রতিসম ম্যাট্রিক্স হয় এবং তাই এটি diagonalized করা যেতে পারে: যেখানে eigenvectors একটি ম্যাট্রিক্স (প্রতিটি কলামের একটি eigenvector হয়) এবং হয় হয় তির্যকটির ক্রমহ্রাসমান ক্রমে ইগেনভ্যালুগুলি সহ একটি তির্যক ম্যাট্রিক্স । আইজেনভেেক্টরগুলিকে প্রধান অক্ষ বা ডেটার প্রধান দিকনির্দেশনা বলা হয় । প্রধান অক্ষগুলিতে ডেটা অনুমানকে প্রধান উপাদানগুলি বলা হয় , এটি পিসি স্কোর নামেও পরিচিতসি সি = এক্সএক্স / ( এন - 1 ) সি = ভী এল ভি , ভী এল λ আমিএক্স ভী আমি আমি x ভীp×pCC=XX/(n1)

C=VLV,
VLλi; এগুলি নতুন, রূপান্তরিত, ভেরিয়েবল হিসাবে দেখা যায়। -th প্রধান উপাদান দেওয়া হয় এর -th কলাম । স্থানাঙ্ক নতুন পিসি স্থান -th ডাটা পয়েন্ট দ্বারা দেওয়া হয় এর -th সারি ।jjXViiXV

যদি আমরা এখন এর একক মান পচন করতে পারি তবে আমরা একটি পচন পাই যেখানে একটি একক ম্যাট্রিক্স এবং এর তির্যক ম্যাট্রিক্স মান । এখান থেকে সহজেই দেখতে পাবেন যে অর্থ, ডান একক ভেক্টর মূল দিকনির্দেশনা এবং একক মানগুলি মাধ্যমে কোভারিয়েন্স ম্যাট্রিক্সের ইগেনভ্যালুগুলির সাথে সম্পর্কিত । প্রধান উপাদান দ্বারা দেওয়া হয়এক্স = ইউ এস ভি , ইউ এস এস আই সি = ভি এস ইউইউ এস ভি/ ( এন - 1 ) = ভি এস 2X

X=USV,
USsiভিλi=এস 2 আই /(এন-1)এক্সভি=ইউএসভিভি=ইউএস
C=VSUUSV/(n1)=VS2n1V,
Vλi=si2/(n1)XV=USVV=US

সংক্ষেপ:

  1. যদি তবে এর কলামগুলি প্রধান দিকনির্দেশ / অক্ষ হয়।ভিX=USVV
  2. কলামগুলি মূল উপাদান ("স্কোর")।US
  3. একক মানগুলি মাধ্যমে কোভারিয়েন্স ম্যাট্রিক্সের ইগেনভ্যালুগুলির সাথে সম্পর্কিত । ইগেনভ্যালুস প্রাসঙ্গিক পিসিগুলির দেখায়।λ iλi=si2/(n1)λi
  4. আদর্শায়িত স্কোর কলাম দেওয়া হয় এবং loadings এর কলাম দেওয়া হয় । যেমন দেখুন এখানে এবং এখানে কেন "loadings" প্রধান নির্দেশ গুলিয়ে ফেলা উচিত নয় জন্য।ভিএস/n1UVS/n1
  5. কেবলমাত্র কেন্দ্রিক হলে সঠিক । Xতবেই কোভারিয়েন্স ম্যাট্রিক্স সমান সমান ।XX/(n1)
  6. কেবলমাত্র জন্য সঠিক যা সারিগুলিতে নমুনা রয়েছে এবং কলামগুলিতে পরিবর্তনশীল। যদি ভেরিয়েবলগুলি কলামগুলিতে সারি এবং নমুনা হয় তবে এবং এক্সচেঞ্জের ব্যাখ্যা।ইউ ভিXUV
  7. যদি কেউ কোনও কোভেরিয়েন্স ম্যাট্রিক্সের পরিবর্তে (কোভারিয়েন্স ম্যাট্রিক্সের পরিবর্তে) পিসিএ করতে চান, তবে কলামগুলি কেবল কেন্দ্রিক নয়, পাশাপাশি হওয়া উচিত, অর্থাত্ তাদের মানক বিচ্যুতি দ্বারা বিভক্ত।X
  8. থেকে তে উপাত্তের মাত্রা কমাতে , first এর প্রথম কলামগুলি নির্বাচন করুন এবং এর উপরের-বাম অংশে । তাদের পণ্য প্রথম পিসি সমন্বিত প্রয়োজনীয় ম্যাট্রিক্স ।কে < পি কে ইউ কে × কে এস ইউ কে এস কে এন × কে কেpk<pkUk×kSUkSkn×kk
  9. আরও প্রথম গুন সংশ্লিষ্ট প্রধান অক্ষ দ্বারা পিসিতে উৎপাদনের ম্যাট্রিক্স মূল যে আকার তবে নিম্ন র‌্যাঙ্কের (র‌্যাঙ্কের )। এই ম্যাট্রিক্স প্রথম পিসি থেকে মূল ডেটা পুনর্গঠন সরবরাহ করে । এটিতে সর্বনিম্ন সম্ভব পুনর্গঠন ত্রুটি রয়েছে, আমার উত্তরটি এখানে দেখুনভি কে এক্স কে = ইউ কে এস কে ভি কে এন × পি কে এক্স কে কেkVkXk=UkSkVkn×pkXkk
  10. কঠোরভাবে বলতে, হল আকার এবং হয় আকার। তবে, যদি তবে then এর শেষ কলামগুলি স্বেচ্ছাসেবী হয় (এবং এর সাথে সম্পর্কিত সারিগুলি স্থির শূন্য হয়); অতএব এক একটি ব্যবহার করা উচিত অর্থনীতি আকার (অথবা পাতলা ) SVD যে ফেরৎ এর আকার, বেহুদা কলাম ড্রপ। বড় জন্য ম্যাট্রিক্স অন্যথায় অকারণে বিশাল। একই জিনিস বিপরীত পরিস্থিতির জন্য প্রযোজ্য এন × n ভি পি × পি এন > পি এন - পি ইউ এসUn×nVp×pn>pnpUS এন × পি এন পি ইউ এন পিUn×pnpUnp

আরও লিঙ্ক

পিসিএ অ্যানিমেশন ঘোরানো


5
@ এন্টাইন, কোভেরিয়েন্স ম্যাট্রিক্সটি definition ল্যাঙ্গলের সমান সংজ্ঞা অনুসারে হয় , যেখানে কোণ বন্ধনীগুলি গড় মানকে চিহ্নিত করে । যদি সমস্ত এক ম্যাট্রিক্স সারি হিসাবে হয় , তবে এই অভিব্যক্তিটি সমান । যদি কেন্দ্রিক হয় তবে এটি সরল হয় । ভেরিয়েন্স ভাবুন; এটি সমান । তবে যদি (যেমন ডেটা কেন্দ্রিক), তবে এটি কেবল এর গড় মান ।(xix¯)(xix¯)xiX(XX¯)(XX¯)/(n1)XXX/(n1)(xix¯)2x¯=0xi2
অ্যামিবা

2
এসভিডি দ্বারা পিসিএর জন্য একটি কোড নমুনা: স্ট্যাকওভারফ্লো.
আশাবাদী

1
অ্যামিবা, আমি আপনার সরবরাহিত লিঙ্কগুলির সাথে সামঞ্জস্য রেখে আরও একটি লিঙ্ক যুক্ত করার দায়িত্ব নিয়েছি। আশা করি আপনি এটি উপযুক্ত পাবেন
ttnphns

2
@ আমেবা হ্যাঁ, তবে কেন এটি ব্যবহার করবেন? এছাড়াও, জন্য একই ডিনোমিনেটর ব্যবহার করা কি সম্ভব ? সমস্যাটি হ'ল আমি সূত্রগুলি দেখতে পাই যেখানে এবং বুঝতে চেষ্টা করুন, সেগুলি কীভাবে ব্যবহার করবেন? λ আই = এস 2Sλi=si2
দিমস

1
@ সেরা কেবল আপনার ম্যাট্রিক্স স্থানান্তর করুন এবং আপনার সমস্যা থেকে মুক্তি পান। আপনি কেবল অন্যথায় বিভ্রান্ত হয়ে যাবেন।
অ্যামিবা

22

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

import numpy as np
from numpy import linalg as la
np.random.seed(42)


def flip_signs(A, B):
    """
    utility function for resolving the sign ambiguity in SVD
    http://stats.stackexchange.com/q/34396/115202
    """
    signs = np.sign(A) * np.sign(B)
    return A, B * signs


# Let the data matrix X be of n x p size,
# where n is the number of samples and p is the number of variables
n, p = 5, 3
X = np.random.rand(n, p)
# Let us assume that it is centered
X -= np.mean(X, axis=0)

# the p x p covariance matrix
C = np.cov(X, rowvar=False)
print "C = \n", C
# C is a symmetric matrix and so it can be diagonalized:
l, principal_axes = la.eig(C)
# sort results wrt. eigenvalues
idx = l.argsort()[::-1]
l, principal_axes = l[idx], principal_axes[:, idx]
# the eigenvalues in decreasing order
print "l = \n", l
# a matrix of eigenvectors (each column is an eigenvector)
print "V = \n", principal_axes
# projections of X on the principal axes are called principal components
principal_components = X.dot(principal_axes)
print "Y = \n", principal_components

# we now perform singular value decomposition of X
# "economy size" (or "thin") SVD
U, s, Vt = la.svd(X, full_matrices=False)
V = Vt.T
S = np.diag(s)

# 1) then columns of V are principal directions/axes.
assert np.allclose(*flip_signs(V, principal_axes))

# 2) columns of US are principal components
assert np.allclose(*flip_signs(U.dot(S), principal_components))

# 3) singular values are related to the eigenvalues of covariance matrix
assert np.allclose((s ** 2) / (n - 1), l)

# 8) dimensionality reduction
k = 2
PC_k = principal_components[:, 0:k]
US_k = U[:, 0:k].dot(S[0:k, 0:k])
assert np.allclose(*flip_signs(PC_k, US_k))

# 10) we used "economy size" (or "thin") SVD
assert U.shape == (n, p)
assert S.shape == (p, p)
assert V.shape == (p, p)

21

আমার পিসিএ দিয়ে শুরু করা যাক। মনে করুন যে আপনার প্রত্যেকটিতে ডি সংখ্যার (বা মাত্রা) সমন্বিত এন ডাটা পয়েন্ট রয়েছে। আপনি যদি এই ডেটাটি কেন্দ্র করে থাকেন ( প্রতিটি ডেটা ভেক্টর থেকে গড় ডেটা পয়েন্ট বিয়োগ করুন ) আপনি ম্যাট্রিক্স তৈরি করতে ডেটা স্ট্যাক করতে পারেনμxi

X=(x1TμTx2TμTxnTμT).

কোভেরিয়েন্স ম্যাট্রিক্স

S=1n1i=1n(xiμ)(xiμ)T=1n1XTX

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

S=VΛVT=i=1rλiviviT,

যেখানে হয় -th প্রধান উপাদান , বা পিসি, এবং হয় -th এর eigenvalue এবং বরাবর ডেটা ভ্যারিয়েন্স সমান -th পিসি। এই পচানি রৈখিক বীজগণিত সাধারণ উপপাদ্য থেকে আসে, এবং কিছু কাজ করে পিসিএ করার relatino অনুপ্রাণিত করা হবে।viiλiiSi

এলোমেলোভাবে উত্পন্ন গাউসিয়ান ডেটাসেটের পিসিএ

এসভিডি হ'ল ম্যাট্রিক্সকে এর কলাম-স্পেস এবং সারি-স্থানের দিক থেকে বোঝার একটি সাধারণ উপায়। (সারি এবং কলাম স্পেসের সাথে স্বজ্ঞাত সম্পর্কের সাথে অন্য ম্যাট্রিক্সের ক্ষেত্রে যে কোনও ম্যাট্রিক্স পুনরায় লেখার উপায়)) উদাহরণস্বরূপ, ম্যাট্রিক্স আমরা ডোমেনের মধ্যে এবং দিকনির্দেশগুলি খুঁজে পেতে পারি যাতে পরিসীমা থাকেA=(1201)uivi

2x2 উদাহরণের জন্য এসভিডি

আপনি বিবেচনা করা কিভাবে এই জানতে পারেন একটি রৈখিক রূপান্তর যেমন একটি ইউনিট গোলক morphs উপবৃত্তাকার অধ্যক্ষ আধা অক্ষ দিয়ে সারিবদ্ধ: একটি উপবৃত্তাকার তার ডোমেনে ও তাদের preimages হয়।ASuivi

যাই হোক না কেন, উপরের ডাটা ম্যাট্রিক্স জন্য (সত্যিকার অর্থে, কেবলমাত্র সেট করুন ), এসভিডি আমাদের লিখতে দেয়XA=X

X=i=1rσiuivjT,

যেখানে এবং সেট এর ইগেনালালু পচনের সাথে তুলনা প্রকাশ করে যে "ডান ভেক্টর" পিসির সমান, "ডান ভেক্টর"{ v i } S v i{ui}{vi}Svi

ui=1(n1)λiXvi,

এবং " মান" ডেটা ম্যাট্রিক্সের মাধ্যমে সম্পর্কিতσi

σi2=(n1)λi.

এটি একটি সাধারণ সত্য যে ডান একক ভেক্টর এর কলামের স্থানটি বিস্তৃত করে । এই নির্দিষ্ট ক্ষেত্রে, আমাদের তম প্রধান উপাদানটির দিকের দিকে ডেটা একটি ছোট আকারের প্রক্ষেপণ give বাম ভেক্টরগুলি এর সারির স্প্যানটি সাধারণভাবে বিস্তৃত করে , যা আমাদেরকে ভেক্টরগুলির একটি সেট দেয় যা পিসির মতো ডেটা ছড়িয়ে দেয়। এক্স ইউ আই এক্স আই ভি আই এক্সuiXuiXiviX

এই দীর্ঘ নিবন্ধে আমি পিসিএ এবং এসভিডি-র মধ্যে সম্পর্কের আরও কিছু বিশদ এবং সুবিধাগুলিতে যাচ্ছি ।


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