কেন পিসিএ ডেটা এসভিডি মাধ্যমে ডেটা?


22

এই প্রশ্নটি মূল উপাদানগুলি গণনা করার একটি কার্যকর উপায় সম্পর্কে।

  1. লিনিয়ার পিসিএর অনেকগুলি পাঠ্য কেসওয়াইজ ডেটার একক-মান পচন ব্যবহার করে অ্যাডভোকেট । এটি হ'ল, যদি আমাদের কাছে ডেটা এবং মূল উপাদানগুলি দ্বারা ভেরিয়েবলগুলি (এর কলামগুলি ) প্রতিস্থাপন করতে চান তবে আমরা এসভিডি করি: , একক মান (ইগেনভ্যালুগুলির বর্গমূল) এর মূল তির্যকটি দখল করে , ডান ইগেনভেেক্টরস \ বিএফ ভি হ'ল অক্ষ-উপাদানগুলির অরথোগোনাল রোটেশন ম্যাট্রিক্সকে অক্ষ-উপাদানগুলিতে বাম ইজিনভেেক্টর \ বিএফ ইউ only বিএফ ভি এর মতো , কেবলমাত্র ক্ষেত্রে। এরপরে আমরা উপাদান হিসাবে মানগুলি \ bf সি = এক্সভি = মার্কিন হিসাবে গণনা করতে পারি ।এক্স এস ভি ইউ ভি সি = এক্স ভি = ইউ এসএক্স=ইউএসভী'এসভীইউভীসি=এক্সভী=ইউএস

  2. ভেরিয়েবলের পিসিএ করার আরেকটি উপায় হ'ল স্কোয়ার ম্যাট্রিক্সের (যেমন ভেরিয়েবলগুলির মধ্যে পারস্পরিক সম্পর্ক বা সমবায় ইত্যাদি হতে পারে )। পচানি eigen-পচানি হতে পারে অথবা একবচন-মান পচানি: বর্গক্ষেত্র প্রতিসম ইতিবাচক semidefinite ম্যাট্রিক্স সঙ্গে, তারা একই ফলাফল দেব তির্যক হিসাবে eigenvalues সঙ্গে , এবং যেমন আগে বর্ণিত। উপাদানগুলির মানগুলি ।আরআর=এক্স'এক্সআর এল ভি সি = এক্স ভিআর=ভীএলভী'এলভীসি=এক্সভী

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


2
সাধারণত আমরা কেবলমাত্র কয়েকটি মূল উপাদানগুলিতে আগ্রহী যা বেশিরভাগ বৈকল্পিকতা ব্যাখ্যা করে। হ্রাস এসভিডি করা সম্ভব; উদাহরণস্বরূপ যদি মাত্রা হল যেখানে তারপর এর ফাংশন শুধুমাত্র প্রথম গনা হবে বাম এবং ডান একবচন ভেক্টর ডিফল্টরূপে। এন × পি পি < < এন পিএক্সএন×পিপি<<এনRsvdপি
এম বার্ক

1
@ এমবার্ক: তবে উভয় পদ্ধতির ক্ষেত্রেই একই: এগুলি সমান ফলাফল দেয় (পরিবর্তনে সাইন আপ করার জন্য সমান)। এছাড়াও, যেমন আর জিজ্ঞাসা করা হলে কেবল সি গণনা করে । pসি
সিবেলাইটস মনিকা

আপনার কি উপায়ের জন্য একটি রেফারেন্স রয়েছে (1)? আমি কেবল পিসিএ-কে সমবায় ম্যাট্রিক্সে (যেমন উপায় 2) এসভিডি এর মাধ্যমে প্রয়োগ করা হচ্ছে তা সম্পর্কে সচেতন, কারণ এটি কিছু সংখ্যক সমস্যা এড়ায় এবং স্পষ্টতই মাত্রিক মাত্রার সাথে স্কেল করে, ডেটা সেট আকার নয়। ওয়ে (1) আমি এসভিডি কল করব, একেবারেই পিসিএ নয়। আমি এটি কেবল একটি খাঁটি এসভিডি প্রসঙ্গেই দেখেছি, যেখানে কেউ বাস্তবে সম্পূর্ণ পচন না ঘটায়।
অ্যানি-মৌসে

@ অ্যানি-মৌসেস, কেবল একটির উল্লেখ করার জন্য, Joliffe, Principal component analysis, 2nd ed.আসলে, জলিফ দুটি উপায় বর্ণনা করেছেন, তবে পিসিএর মূল অধ্যায়ে তিনি ঠিক 1 উপায় সম্পর্কে বলেছেন, যতদূর আমি মনে করতে পারি।
ttnphns

@ অ্যানি-মৌসেস, তাত্ত্বিক দিক থেকে আমার জন্য ওয়ে 1 গুরুত্বপূর্ণ কারণ এটি স্পষ্টভাবে দেখায় যে কীভাবে পিসিএ সাধারণ চিঠিপত্র বিশ্লেষণের সাথে সরাসরি সম্পর্কিত ।
ttnphns

উত্তর:


7

এই বিষয়টিতে আমার 2ct আছে

  • কেমিমেট্রিক্সের বক্তৃতা যেখানে আমি প্রথম পিসিএ সমাধান (2) ব্যবহার করে শিখেছিলাম, তবে এটি সংখ্যাসূচক ছিল না, এবং আমার সংখ্যাসমূহের বক্তৃতাটি কেবল একটি ভূমিকা ছিল এবং আমি যতদূর মনে করি এসভিডি নিয়ে আলোচনা করি নি।

  • যদি আমি হোমস: লার্জ-স্কেল ম্যাট্রিক্সের জন্য দ্রুত এসভিডি সঠিকভাবে বুঝতে পারি তবে আপনার ধারণাটি দীর্ঘ ম্যাট্রিকের একটি গণনামূলক দ্রুত এসভিডি পাওয়ার জন্য ব্যবহৃত হয়েছে।
    এর অর্থ হ'ল একটি ভাল এসভিডি বাস্তবায়ন অভ্যন্তরীণভাবে অনুসরণ করতে পারে (২) যদি এটি উপযুক্ত ম্যাট্রিক্সের মুখোমুখি হয় (তবে আরও ভাল সম্ভাবনা রয়েছে কিনা তা আমি জানি না)। এর অর্থ হ'ল উচ্চ-স্তরের বাস্তবায়নের জন্য এসভিডি (1) ব্যবহার করা ভাল এবং অভ্যন্তরীণভাবে কোন অ্যালগরিদম ব্যবহার করা উচিত তার যত্ন নিতে এটি বিএএলএসে রেখে দেওয়া ভাল।

  • দ্রুত ব্যবহারিক চেক: ওপেনবিএলএস এর এসভিডি এই পার্থক্যটি দেখে মনে হচ্ছে না, 5e4 x 100 এর ম্যাট্রিক্সে, মিডিয়েনটি svd (X, nu = 0)3.5 এস svd (crossprod (X), nu = 0)লাগে , যখন 54 এমএস লাগে (আর এর সাথে ডাকা হয় microbenchmark)।
    অবশ্যই ইগেনুয়ালুগুলির স্কোয়ারিং দ্রুত এবং এটি উভয় কলের ফলাফল সমতুল্য।

    timing  <- microbenchmark (svd (X, nu = 0), svd (crossprod (X), nu = 0), times = 10)
    timing
    # Unit: milliseconds
    #                      expr        min         lq    median         uq        max neval
    #            svd(X, nu = 0) 3383.77710 3422.68455 3507.2597 3542.91083 3724.24130    10
    # svd(crossprod(X), nu = 0)   48.49297   50.16464   53.6881   56.28776   59.21218    10
    

আপডেট: ডাব্লু, ডাব্লু।; এ একবার দেখুন মাসার্ট, ডি ও ডি জং, এস .: বিস্তৃত তথ্যের জন্য কার্নেল পিসিএ অ্যালগরিদম। প্রথম খণ্ড: তত্ত্ব এবং অ্যালগরিদম, কেমোমেট্রিক্স এবং বুদ্ধিমান পরীক্ষাগার সিস্টেম, 36, 165 - 172 (1997)। ডিওআই: http://dx.doi.org/10.1016/S0169-7439(97)00010-10

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

তারা নিম্নলিখিত হিসাবে সম্পর্কিত:

computes on      extract all PCs at once       sequential extraction    
X                SVD                           NIPALS    
X'X              EVD                           POWER

কাগজ প্রেক্ষাপটে হয় ওয়াইড , এবং তারা এ কাজ করে এক্স এক্স ' (কার্নেল পিসিএ) - এটা তোমার সম্পর্কে জিজ্ঞাসা হিসাবে ঠিক বিপরীত অবস্থা। সুতরাং দীর্ঘ ম্যাট্রিক্স আচরণ সম্পর্কে আপনার প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে "কার্নেল" এবং "শাস্ত্রীয়" এর অর্থ বিনিময় করতে হবে।এক্স(30×500)এক্সএক্স'

কর্মক্ষমতা তুলনা

অবাক হওয়ার মতো বিষয় নয়, ক্লাসিকাল বা কার্নেল অ্যালগরিদমগুলি ব্যবহৃত হয় কিনা তার উপর নির্ভর করে ইভিডি এবং এসভিডি স্থান পরিবর্তন করে। এই প্রশ্নের প্রসঙ্গে এর অর্থ হ'ল ম্যাট্রিক্সের আকারের উপর নির্ভর করে এক বা অন্যটি ভাল হতে পারে।

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


    > sessionInfo ()
    R version 3.0.2 (2013-09-25)
    Platform: x86_64-pc-linux-gnu (64-bit)

    locale:
     [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C               LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8     LC_MONETARY=de_DE.UTF-8   
     [6] LC_MESSAGES=de_DE.UTF-8    LC_PAPER=de_DE.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
    [11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     

    other attached packages:
    [1] microbenchmark_1.3-0

loaded via a namespace (and not attached):
[1] tools_3.0.2

$ dpkg --list libopenblas*
[...]
ii  libopenblas-base              0.1alpha2.2-3                 Optimized BLAS (linear algebra) library based on GotoBLAS2
ii  libopenblas-dev               0.1alpha2.2-3                 Optimized BLAS (linear algebra) library based on GotoBLAS2

সুতরাং, আপনার টেস্টিং (3.5 সেকেন্ড বনাম 54 এমসিসি) আমার লাইনটিকে সমর্থন করে যে "উপায় 1" যথেষ্ট ধীর। রাইট?
ttnphns

1
@ttnphns: হ্যাঁ তবে যেমন এসভিডি বিএলএএস দ্বারা সরবরাহ করা হয়েছে যা আলাদা বিএলএএস এর সাথে আলাদা হতে পারে। আমি প্রত্যাশা করেছি যে একটি ভাল অপ্টিমাইজড BLAS এর মতো কিছু করে। এটি ওপেনব্ল্যাএলএস-এর ক্ষেত্রে হবে বলে মনে হয় না। আমি অন্যান্য বিএলএএস পরীক্ষা করতে খুব অলস, তবে সম্ভবত কিছু লোক তাদের অন্যান্য বিএলএএস পরীক্ষা করতে পারে তাই আমরা জানতে পারি কোনটি এই মামলার জন্য অনুকূলিত এবং কোনটি নয়। (আমি ওপেনবিএলএস বিকাশকারীকে ইমেল করেছিলাম এবং তাকে এই প্রশ্নের একটি লিঙ্ক পাঠিয়েছি, তাই সম্ভবত তিনি কিছু তথ্য যুক্ত করতে পারেন, যেমন svd (X'X)দীর্ঘ ম্যাট্রিকগুলির জন্য অ্যালগরিদমটি স্যুইচ না করার কারণগুলি ))
সিবেলাইটস মনিকা 18

এক্স'এক্সএন<পিএক্স'এক্সতোমার দর্শন লগ করাএন+ +1=এক্স'এক্সতোমার দর্শন লগ করাএন/||এক্স'এক্সতোমার দর্শন লগ করাএন||বনাম1এক্সএক্স'এক্সএক্স'×(এক্সতোমার দর্শন লগ করাএন)

এক্সএক্সটি

আমি আপনার আপডেটের কথা বলছিলাম, যেখানে নিপাল জড়িত। আমি নিশ্চিত নিপালস ল্যাপকের এসভিডিতে জড়িত নয় confirm আপনার মানদণ্ড পরীক্ষা সম্পর্কে, এর মতো কিছু microbenchmark(X <- matrix(rnorm(5e6), ncol=100), Y <- t(X), svd(X), svd(Y), control=list(order="inorder"), times = 5)আকর্ষণীয়ও হতে পারে।
এলভিস

18

এসভিডি ধীরে ধীরে তবে উচ্চতর সংখ্যাগত যথাযথতার কারণে প্রায়শই পছন্দসই পদ্ধতি হিসাবে বিবেচিত হয়।

আপনি যেমন প্রশ্নের বিবরণে উল্লেখ করেছেন, মূল উপাদান মেট্রিক্স এসভিডি প্রধান উপাদান উপাদান বিশ্লেষণ (পিসিএ) সম্পাদন করা যেতে পারেএক্স1এন-1এক্সএক্সএক্সএক্সএন«পি

ম্যাটল্যাবের pca()ফাংশন সাহায্যে যা লেখা আছে তা এখানে :

প্রধান উপাদান উপাদান অ্যালগরিদম যা pcaপ্রধান উপাদান বিশ্লেষণ সম্পাদন করতে ব্যবহার করে [...]:

'এসভিডি' - ডিফল্ট। এক্স এর একবাক্য মান পচন (এসভিডি)

এনপি

সর্বশেষ বাক্যটি এখানে গুরুত্বপূর্ণ গতি-নির্ভুলতা বাণিজ্য বন্ধের হাইলাইট করে।

1000×100

X = randn([1000 100]);

tic; svd(X); toc         %// Elapsed time is 0.004075 seconds.
tic; svd(X'); toc        %// Elapsed time is 0.011194 seconds.
tic; eig(X'*X); toc      %// Elapsed time is 0.001620 seconds.
tic; eig(X*X'); toc;     %// Elapsed time is 0.126723 seconds.

এন«পিএক্সএক্স

এক্সএক্সএক্সএক্স

এক্স=(111ε000ε000ε),
3+ +ε2ε2ε2ε=10-5
eps = 1e-5;
X = [1 1 1; eye(3)*eps];
display(['Squared sing. values of X: ' num2str(sort(svd(X),'descend').^2')])
display(['Eigenvalues of X''*X:       ' num2str(sort(eig(X'*X),'descend')')])

অভিন্ন ফলাফল প্রাপ্ত:

Squared sing. values of X: 3       1e-10       1e-10
Eigenvalues of X'*X:       3       1e-10       1e-10

ε=10-10

Squared sing. values of X: 3       1e-20       1e-20
Eigenvalues of X'*X:       3           0 -3.3307e-16

এক্সএক্স

আমার যুক্ত করা উচিত যে এই সম্ভাব্য [ক্ষুদ্র] নির্ভুলতার ক্ষতিটিকে উপেক্ষা করার পরিবর্তে দ্রুত পদ্ধতিটি ব্যবহার করে একজন প্রায়শই খুশি হন।


1
এক্সটিএক্স

উত্তরের জন্য এবং উপকারিতা এবং কনসগুলিকে পুরোপুরি বিবেচনা করার জন্য ধন্যবাদ।
ttnphns

অ্যামিবা, এমন কি আপনি এমন একটি দৃ concrete় উদাহরণ দেখাতে সময় খুঁজে পান যেখানে সংখ্যার স্থায়িত্বের ফলেই কষ্ট হয় eig()? (পাঠকরা উপকৃত হবেন: গতি এবং স্থিতিশীলতার মধ্যে বাণিজ্য-বন্ধের একটি বিষয় রয়েছে one কেউ কীভাবে একটি বাস্তব পরিস্থিতি স্থির করতে পারেন?)
ttnphns

@ttnphns আমি পুরো উত্তরটি পুনরায় লিখেছি, এর একটি নূতন উদাহরণ দিচ্ছি। এটা দেখ.
অ্যামিবা বলেছেন মোনিকা

1
@ আমেবা, ফিরে এসে উদাহরণ দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ! আমি এসপিএসএসে উভয় এপসিলনের উদাহরণ ব্যবহার করে দেখেছি এবং শেষ 3 0 -3.3307e-16পংক্তিকে বাদ দিয়ে আপনার মত ফলাফল পেয়েছি: এসএসএসে ইগেনের পরিবর্তে আমাকে ফিরিয়ে দিয়েছে 3 0 0। দেখে মনে হচ্ছে ফাংশনটির কিছু অন্তর্নির্মিত এবং স্থির সহিষ্ণুতা রয়েছে যা এর বাইরে এটি শূন্য-অফ। এই উদাহরণে, ফাংশনটি এমনভাবে উপস্থিত হয়েছিল যেন ক্ষুদ্র ইগ্যালভ্যালুগুলি, "0" এবং "-16" উভয়কেই শূন্য করে সংখ্যার অস্থিরতার গিঁটটিকে হ্যাক করে।
ttnphns
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.