ধরুন আমার কাছে একটি মাত্রিক ডেটা সেট রয়েছে যেখানে মাত্রাগুলি মোটামুটি orthogonal (পারস্পরিক সম্পর্ক শূন্য আছে)।
শর্তে কোন ইউটিলিটি আছে:
- কল্পনা
- প্রতিনিধিত্ব (শ্রেণিবদ্ধ দক্ষতার জন্য)
- বা অন্যান্য মানদণ্ড
ডেটা উপর মাত্রা হ্রাস সম্পাদন করতে?
ধরুন আমার কাছে একটি মাত্রিক ডেটা সেট রয়েছে যেখানে মাত্রাগুলি মোটামুটি orthogonal (পারস্পরিক সম্পর্ক শূন্য আছে)।
শর্তে কোন ইউটিলিটি আছে:
ডেটা উপর মাত্রা হ্রাস সম্পাদন করতে?
উত্তর:
আমি @ পিটার-ফ্লমের জবাবের নীচে আমি যে মন্তব্যটি রেখেছি তা স্পষ্ট করতে চেয়েছিলাম তবে উত্তরে এটি সম্ভবত লেখার পক্ষে উপযুক্ত। প্রায় অরথোগোনাল ডেটাতে আপনি পিসিএ চালিয়ে মাত্রা কমাতে পারবেন? পারস্পরিক সম্পর্ক বা কোভারিয়েন্স ম্যাট্রিক্সে আপনি পিসিএ করেন কিনা তার উপরে উত্তর "এটি নির্ভর করে" ।
আপনি যদি পারস্পরিক সম্পর্ক মেট্রিক্সে পিসিএ ব্যবহার করছেন, তবে এটি পরিচয় ম্যাট্রিক্স থেকে সামান্য পৃথক হওয়ায় একটি গোলাকার প্রতিসাম্য রয়েছে যা সমস্ত দিককে "সমানভাবে তথ্যবহুল" রেন্ডার করে। আপনার ভেরিয়েবলের বৈকল্পিকগুলি পিসিএর আগে একটিকে পুনরায় চালিত করা একটি গাণিতিক সমতুল্য পদ্ধতির যা একই ফলাফল তৈরি করবে। যদিও পিসিএ আউটপুট অন্যদের তুলনায় কিছুটা কম বৈকল্পিক সহ কিছু উপাদান চিহ্নিত করবে, এটি দায়ী করা যেতে পারে (যদি আমরা জনসংখ্যার সাথে শূন্য সম্পর্ককে ধরে নিই) নমুনায় সুযোগের প্রকরণের চেয়ে বেশি কিছু না, তবে এগুলি জেটিসনের পক্ষে ভাল কারণ হবে না উপাদান। প্রকৃতপক্ষে উপাদানগুলির স্ট্যান্ডার্ড বিচ্যুতির মধ্যে এই ধরনের বৈষম্য মাত্রার হ্রাস হওয়া উচিত কারণ আমরা নমুনার আকার বাড়িয়ে তুলি। আমরা একটি সিমুলেশন মধ্যে এটি নিশ্চিত করতে পারেন।
set.seed(123)
princompn <- function(n, sd1=1, sd2=1, sd3=1, sd4=1, cor=TRUE) {
x1 <- rnorm(n, mean=0, sd=sd1)
x2 <- rnorm(n, mean=0, sd=sd2)
x3 <- rnorm(n, mean=0, sd=sd3)
x4 <- rnorm(n, mean=0, sd=sd4)
prcomp(cbind(x1,x2,x3,x4), scale.=cor)
}
আউটপুট:
> pc100 <- princompn(100)
> summary(pc100)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.0736 1.0243 0.9762 0.9193
Proportion of Variance 0.2882 0.2623 0.2382 0.2113
Cumulative Proportion 0.2882 0.5505 0.7887 1.0000
>
> pc1m <- princompn(1e6)
> summary(pc1m)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.0008 1.0004 0.9998 0.9990
Proportion of Variance 0.2504 0.2502 0.2499 0.2495
Cumulative Proportion 0.2504 0.5006 0.7505 1.0000
তবে, আপনি যদি পিসিএ করেন পারস্পরিক সম্পর্ক ম্যাট্রিক্সের পরিবর্তে কোভরিয়েন্স ম্যাট্রিক্স ব্যবহার করে (সমানভাবে: আমরা যদি পিসিএ প্রয়োগ করার আগে স্ট্যান্ডার্ড বিচ্যুতিগুলি 1-এ স্কেল না করি), তবে উত্তরটি আপনার ভেরিয়েবলের প্রসারণের উপর নির্ভর করে। যদি আপনার ভেরিয়েবলগুলির একই বৈকল্পিকতা থাকে তবে আমাদের কাছে এখনও গোলাকার প্রতিসাম্য রয়েছে, তাই কোনও "সুবিধাপ্রাপ্ত দিকনির্দেশ" নেই এবং মাত্রিক হ্রাস অর্জন করা যায় না।
> pcEqual <- princompn(n=1e6, sd1=4, sd2=4, sd3=4, sd4=4, cor=FALSE)
> summary(pcEqual)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 4.0056 4.0010 3.9986 3.9936
Proportion of Variance 0.2507 0.2502 0.2499 0.2492
Cumulative Proportion 0.2507 0.5009 0.7508 1.0000
উচ্চ এবং নিম্ন বৈকল্পিক ভেরিয়েবলগুলির মিশ্রণ সহ, যদিও, প্রতিসাম্যটি আরও কিছু প্রশস্ত অক্ষ এবং অন্যদের মতো পাতলা একটি উপবৃত্তাকার মতো হয় like এই পরিস্থিতিতে উচ্চ-ভেরিয়েন্স ভেরিয়েবলগুলিতে লোড হচ্ছে উচ্চ-বৈকল্পিক উপাদানগুলি (যেখানে উপবৃত্তাকার প্রশস্ত) এবং নিম্ন-ভেরিয়েন্স ভেরিয়েবলগুলিতে লোড লো-ভেরিয়েন্স উপাদানগুলি (যেদিকে এলিপসয়েড সংকীর্ণ হয়)।
> pcHiLo <- princompn(n=1e6, sd1=4, sd2=4, sd3=1, sd4=1, cor=FALSE)
> summary(pcHiLo)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 4.0018 3.9985 1.0016 1.00005
Proportion of Variance 0.4709 0.4702 0.0295 0.02941
Cumulative Proportion 0.4709 0.9411 0.9706 1.00000
> round(pcHiLo$rotation, 3)
PC1 PC2 PC3 PC4
x1 0.460 0.888 0.000 0.000
x2 -0.888 0.460 0.000 0.000
x3 0.000 0.000 -0.747 -0.664
x4 0.000 0.000 0.664 -0.747
যদি ভেরিয়েবলগুলির খুব আলাদা প্রকরণ হয় (জ্যামিতিকভাবে আবার একটি উপবৃত্তাকার তবে সমস্ত অক্ষ পৃথক করে) তবে অরথোগোনালিটি প্রথম পিসিকে সর্বোচ্চ-বৈকল্পিক ভেরিয়েবলের উপর খুব ভারী লোড করতে দেয়।
> pc1234 <- princompn(n=1e6, sd1=1, sd2=2, sd3=3, sd4=4, cor=FALSE)
> summary(pc1234)
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 3.9981 3.0031 1.9993 1.00033
Proportion of Variance 0.5328 0.3006 0.1332 0.03335
Cumulative Proportion 0.5328 0.8334 0.9667 1.00000
> round(pc1234$rotation, 3)
PC1 PC2 PC3 PC4
x1 0.000 0.000 -0.001 1.000
x2 0.001 -0.001 1.000 0.001
x3 0.003 -1.000 -0.001 0.000
x4 1.000 0.003 -0.001 0.000
শেষ দুটি ক্ষেত্রে কম বৈকল্পিক উপাদানগুলি ছিল যা আপনি মাত্রিক হ্রাস অর্জনের জন্য দূরে নিক্ষেপ করতে বিবেচনা করতে পারেন, তবে এটি করা প্রথম স্থানে সর্বনিম্ন বৈকল্পিক ভেরিয়েবলগুলি ছুঁড়ে ফেলার সমতুল্য । মূলত, orthogonality আপনাকে নিম্ন-বৈকল্পিকগুলি সহ কম বৈকল্পিক উপাদানগুলি সনাক্ত করতে দেয়, সুতরাং আপনি যদি এই পদ্ধতিতে মাত্রিকতা হ্রাস করতে চান, তবে এটি পরিষ্কার নয় যে আপনি এটির জন্য পিসিএ ব্যবহার করে উপকৃত হবেন।
নোটা বেন: এই ক্ষেত্রে আলোচনায় ব্যয় করা সময়ের দৈর্ঘ্য যেখানে ইউনিট ভেরিয়েন্সগুলিতে পরিবর্তনশীলগুলি পুনরুদ্ধার করা হয় না - অর্থাত্ সম্পর্কের ক্ষেত্রে ম্যাট্রিক্সের পরিবর্তে কোভেনিয়েন্স ব্যবহার করা উচিত নয় - এই পদ্ধতিকে কোনওভাবেই আরও গুরুত্বপূর্ণ বলে চিহ্নিত করা উচিত নয় এবং অবশ্যই এটি নয় ভাল". পরিস্থিতির প্রতিসাম্যতা আরও সূক্ষ্ম তাই দীর্ঘ আলোচনা প্রয়োজন।
আপনি স্থানীয়ভাবে রৈখিক এম্বেডিং, ল্যালাপাসিয়ান ইগেনম্যাপস বা টি-এসএনইয়ের মতো আরও সাধারণ অ-রৈখিক মাত্রিক হ্রাস বহুগুণ শিখার পদ্ধতির চেষ্টা করতে পারেন।
আপনার ডেটাতে এমনভাবে একটি নিম্ন মাত্রিক সাবস্পেস (বহুগুণ) থাকা সম্ভব যেটি এন-ভিত্তিক মাত্রার মধ্যে 0 পারস্পরিক সম্পর্ক রেখে যায় leaves উদাহরণস্বরূপ, এখানে যেমন উত্স বা তরঙ্গ ফর্ম সম্পর্কে পয়েন্টগুলির একটি বৃত্ত । পিসিএ এটি গ্রহণ করবে না তবে অন্যান্য পদ্ধতিগুলি তা গ্রহণ করবে।
ভিজ্যুয়ালাইজেশন এবং অনুসন্ধানের তথ্য বিশ্লেষণের জন্য এই জাতীয় পদ্ধতির দিকে নজর দেওয়া বিশেষত আকর্ষণীয় এবং সাধারণ। শ্রেণিবদ্ধ বা অন্যান্য মডেলের মধ্যে ব্যবহারের জন্য আপনাকে প্রশিক্ষণের উপযুক্ত হতে পারে এবং পরীক্ষায় প্রয়োগ করতে পারে এমন পদ্ধতিগুলির মধ্যে নিজেকে সীমাবদ্ধ করতে হবে যা প্রচুর পরিমাণে এই পদ্ধতিগুলিকে বাদ দেয় না। এটি যদি আপনার প্রধান আগ্রহ হয় তবে আপনার অব্যবহৃত প্রাক-প্রশিক্ষণ এবং (তত্ত্বাবধানে) বৈশিষ্ট্য ইঞ্জিনিয়ারিংয়ের পদ্ধতিগুলিও দেখতে হবে।
যদি সমস্ত এন ভেরিয়েবল মোটামুটি orthogonal হয় তবে মাত্রা হ্রাস অপেক্ষাকৃত কম হ্রাস করবে। যেমন ইনR
set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
x4 <- rnorm(100)
x5 <- rnorm(100)
x6 <- rnorm(100)
x7 <- rnorm(100)
x8 <- rnorm(100)
x9 <- rnorm(100)
x10 <- rnorm(100)
df1 <- cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)
pcsol <- princomp(df1)
loadings(pcsol)
সংক্ষেপে, "অরথোগোনাল" ইতিমধ্যে তার ক্ষুদ্রতম আকারে "বোঝায়"।
x1<-rnorm(100, sd=0.1)
এবং pcsol <- princomp(df1, cor=FALSE)
একটি পার্থক্য আছে, বিশেষত আমরা যদি তাকান summary(pcsol)
। (আমি প্রস্তাব দিচ্ছি না যে সিওএটি কর্ণের চেয়ে আরও ভাল পদ্ধতির, এটি সম্ভব এটিই।)