খুব স্কিউড, গণনা ডেটার ক্লাস্টারিং: কোনও পরামর্শ (ট্রান্সফর্ম ইত্যাদি) সম্পর্কে যেতে?


11

বেসিক সমস্যা

এখানে আমার বেসিক সমস্যাটি: আমি গণনা সহ কিছু খুব স্কিউ ভেরিয়েবলযুক্ত একটি ডেটাসেট ক্লাস্টার করার চেষ্টা করছি। ভেরিয়েবলগুলিতে অনেকগুলি শূন্য থাকে এবং সুতরাং এটি আমার ক্লাস্টারিং পদ্ধতির জন্য খুব তথ্যপূর্ণ নয় - যা সম্ভবত কে-অর্থাত্ অ্যালগরিদম হতে পারে।

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

আসুন আরও কিছু বিশদে।

ডেটাসেট

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

আমি যেভাবে এটি করি তা হল ক্রয়ের সংখ্যা গণনা করা, যেখানে আইটেমটি একটি নির্দিষ্ট রঙ। সুতরাং একটি একক ভেরিয়েবলের পরিবর্তে color, আমার তিনটি ভেরিয়েবল দিয়ে শেষ count_red, count_blueএবং count_green

উদাহরণের জন্য এখানে একটি উদাহরণ দেওয়া হয়েছে:

-----------------------------------------------------------
customer | count_red  |    count_blue   | count_green     |
-----------------------------------------------------------
c0       |    12      |        5        |       0         |
-----------------------------------------------------------
c1       |     3      |        4        |       0         |
-----------------------------------------------------------
c2       |     2      |       21        |       0         |
-----------------------------------------------------------
c3       |     4      |        8        |       1         |
-----------------------------------------------------------

আসলে, আমি শেষ পর্যন্ত নিখুঁত গণনাগুলি ব্যবহার করি না, আমি অনুপাত ব্যবহার করি (গ্রাহক প্রতি সমস্ত ক্রয়ের আইটেমগুলির সবুজ আইটেমগুলির ভগ্নাংশ)।

-----------------------------------------------------------
customer | count_red  |    count_blue   | count_green     |
-----------------------------------------------------------
c0       |    0.71    |        0.29     |       0.00      |
-----------------------------------------------------------
c1       |    0.43    |        0.57     |       0.00      |
-----------------------------------------------------------
c2       |    0.09    |        0.91     |       0.00      |
-----------------------------------------------------------
c3       |    0.31    |        0.62     |       0.08      |
-----------------------------------------------------------

ফলাফলটি একই: আমার এক রঙের জন্য, যেমন সবুজ (কেউই সবুজ পছন্দ করে না), আমি বাম-স্কিউভ ভেরিয়েবলটি পেয়েছি অনেকগুলি শূন্যযুক্ত। ফলস্বরূপ, কে-মানে এই ভেরিয়েবলের জন্য একটি ভাল পার্টিশন খুঁজে পেতে ব্যর্থ।

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

পরবর্তী ধারণাটি হ'ল স্ক (আর) ইড সবুজ পরিবর্তনশীল trans

স্কিউ ভেরিয়েবলের রূপান্তর করা

স্কোয়ার রুট প্রয়োগ করে যদি আমি সবুজ পরিবর্তনশীল রূপান্তর করি তবে এটি কিছুটা কম স্কিউড দেখাচ্ছে। (এখানে সবুজ পরিবর্তনশীল বিভ্রান্তি নিশ্চিত করতে লাল এবং সবুজ রঙে প্লট করা হয়েছে))

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

লাল: মূল পরিবর্তনশীল; নীল: বর্গমূল দ্বারা রূপান্তরিত।

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

শেষের সারি

অন্য কথায়, আমি কি একরকমভাবে সবুজ রঙের রঙ পরিচালনা করে, তবে লাল এবং নীলকে একেবারেই পরিচালনা না করে গুচ্ছকর ফলাফলগুলি বিকৃত করি? শেষ অবধি, তিনটি ভেরিয়েবল এক সাথে সম্পর্কিত তাই তাদের কী একইভাবে পরিচালনা করা উচিত নয়?

সম্পাদনা

স্পষ্ট করার জন্য: আমি সচেতন যে কে-মানে সম্ভবত গণনাভিত্তিক ডেটা যাওয়ার উপায় নয় । আমার প্রশ্ন তবে নির্ভরশীল ভেরিয়েবলের চিকিত্সা সম্পর্কে। সঠিক পদ্ধতি নির্বাচন করা পৃথক বিষয়।

আমার ভেরিয়েবলের অন্তর্নিহিত সীমাবদ্ধতা এটি

count_red(i) + count_blue(i) + count_green(i) = n(i)যেখানে n(i)গ্রাহকের মোট ক্রয়ের সংখ্যা i

(বা, সমতুল্য, count_red(i) + count_blue(i) + count_green(i) = 1আপেক্ষিক গণনা ব্যবহার করার সময়।)

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


সিভি তে স্বাগতম! আপনার প্রথম প্রশ্নটি এত স্পষ্ট এবং ভালভাবে লেখার জন্য আপনাকে ধন্যবাদ।
সিলভারফিশ

আমি আপনার ডেটাসেটটি বেশ বুঝতে পারি নি। ভেরিয়েবল (বৈশিষ্ট্যাবলী) হয় count_red, count_blueএবং count_greenএবং ডেটা গন্য হয়। রাইট? সারিগুলি তখন কি - আইটেমগুলি? এবং আপনি আইটেম গুচ্ছ যাচ্ছে?
ttnphns

সারিগুলি সাধারণত সামগ্রিক ক্রয়ের গোষ্ঠী উপস্থাপন করে। আপনি তাদের একাধিক আইটেম কেনা গ্রাহক হিসাবে ভাবতে পারেন। এটিকে আরও স্পষ্ট করার জন্য আমি আমার প্রশ্নটিকে একটি নমুনা ডেটাसेट দিয়ে আপডেট করেছি।
pederpansen

আপনি "গ্রাহকদের" ক্লাস্টার করতে চান?
ttnphns

হ্যাঁ. আমি সময়ের ব্যবধানগুলি এবং ফলস্বরূপ ক্লাস্টার সময়ের ব্যবধানের সাথে গোষ্ঠী ক্রয়ের উদ্দেশ্যে আছি, তবে আপাতত: গ্রাহকগণ।
pederpansen

উত্তর:


7

@ttnphns একটি ভাল উত্তর সরবরাহ করেছে।

ক্লাস্টারিং ভাল করা প্রায়শই আপনার ডেটা সম্পর্কে খুব কঠোর চিন্তা করা নিয়ে থাকে, তাই আসুন এর কিছুটা করা যাক। আমার মনে, আপনার ডেটাগুলির সর্বাধিক মৌলিক দিকটি হ'ল তারা গঠনমূলক

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

নীচে আমি আপনার উদাহরণের জন্য ডেটাসেটটি ব্যবহার করি (আরে) আপনার অবস্থার সাথে যোগাযোগ করার এক উপায়। আমি ডেটা পড়েছি এবং সেগুলি সারিবদ্ধ অনুপাতগুলিতে রূপান্তর করি এবং তারপরে কলাম দ্বারা গড় অনুপাত গণনা করি। সামঞ্জস্য গণনা এবং নতুন সার্বিক দিক অনুপাত পেতে আমি প্রতিটি গণনাতে পুনরায় মাধ্যম যুক্ত করি। এটি প্রতিটি গ্রাহকের গড় অনুপাতের দিকে প্রতিটি গ্রাহকের আনুমানিক অনুপাতকে ধাক্কা দেয়। আপনি যদি আরও শক্তিশালী রোধ পেতে চান তবে আপনি 15*mean.propsপরিবর্তে একাধিক উপায় (যেমন, ) ব্যবহার করতে পারেন।

d = read.table(text="id  red    blue    green
...
c3  4   8   1", header=TRUE)
tab = as.table(as.matrix(d[,-1]))
rownames(tab) = paste0("c", 0:3)
tab
#    red blue green
# c0  12    5     0
# c1   3    4     0
# c2   2   21     0
# c3   4    8     1
props = prop.table(tab, 1)
props
#           red       blue      green
# c0 0.70588235 0.29411765 0.00000000
# c1 0.42857143 0.57142857 0.00000000
# c2 0.08695652 0.91304348 0.00000000
# c3 0.30769231 0.61538462 0.07692308
mean.props = apply(props, 2, FUN=function(x){ weighted.mean(x, rowSums(tab)) })
mean.props
#        red       blue      green 
# 0.35000000 0.63333333 0.01666667 
adj.counts = sweep(tab, 2, mean.props, FUN="+");  adj.counts
#            red        blue       green
# c0 12.35000000  5.63333333  0.01666667
# c1  3.35000000  4.63333333  0.01666667
# c2  2.35000000 21.63333333  0.01666667
# c3  4.35000000  8.63333333  1.01666667
adj.props = prop.table(adj.counts, 1);  adj.props
#             red         blue        green
# c0 0.6861111111 0.3129629630 0.0009259259
# c1 0.4187500000 0.5791666667 0.0020833333
# c2 0.0979166667 0.9013888889 0.0006944444
# c3 0.3107142857 0.6166666667 0.0726190476

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

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

windows()
  plot(props[,1], props[,2], pch=as.character(0:3),
       xlab="Proportion Red", ylab="Proportion Blue", xlim=c(0,1), ylim=c(0,1))
  points(adj.props[,1], adj.props[,2], pch=as.character(0:3), col="red")

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

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

pc.a.props = prcomp(adj.props[,1:2], center=T, scale=T)
cumsum(pc.a.props$sdev^2)/sum(pc.a.props$sdev^2)
# [1] 0.9946557 1.000000
pc.a.props$x
#           PC1         PC2
# c0 -1.7398975 -0.03897251
# c1 -0.1853614 -0.04803648
# c2  1.6882400 -0.06707115
# c3  0.2370189  0.15408015
library(mclust)
mc = Mclust(pc.a.props$x[,1])
summary(mc)
# ----------------------------------------------------
# Gaussian finite mixture model fitted by EM algorithm 
# ----------------------------------------------------
# 
# Mclust E (univariate, equal variance) model with 3 components:
# 
#  log.likelihood n df       BIC       ICL
#       -2.228357 4  6 -12.77448 -12.77448
# 
# Clustering table:
# 1 2 3 
# 1 2 1 

+1 কারণ আপনি সনাক্ত করেছেন যে এটি গঠনমূলক ডেটা তবে আপনি কেবল কম্পোসের জন্য মানক রূপান্তর কৌশল ব্যবহার করবেন না কেন। এই অদ্ভুত "মানে সমন্বিত গণনা" ধারণাটির পরিবর্তে ডেটা? এটি আমার কাছে অ্যাড-হক মনে হয়, এর জন্য বা এই জাতীয় কোনও নির্দিষ্ট রেফারেন্স রয়েছে? কেন এটি সরল কেন্দ্রেযুক্ত লগ-অনুপাতের রূপান্তর এবং তারপরে রূপান্তরিত তথ্যের প্রথম পিসি স্কোরকে ক্লাস্টারিংয়ের চেয়ে ভাল? (যা কোনও
কমপোরের

ধন্যবাদ, @ usεr11852। > 2 এর গণনা, তবে সীমাবদ্ধ, বিকল্পগুলি মাল্টিনোমিয়াল। এটি (এক অভিজ্ঞতামূলক 1 ফর্ম) বায়েশিয়ান বিশ্লেষণ ডাব্লু / একটি ডিরিচলেট পূর্বে (কনজুগেট)। আমি নিশ্চিত যে অন্যান্য বিকল্পগুলিও সম্ভব। তবে আমি তাত্ক্ষণিকভাবে দেখতে পাচ্ছি না যে অনুপাত নেওয়া কীভাবে ডাব্লু / ০ এর দশকে কাজ করবে।
গুং - মনিকা পুনরায়

2
লিঙ্কের জন্য ধন্যবাদ। আপনার যদি একটি একক অ-শূন্য উপাদান মাত্রা থাকে তবে আপনি এটি একটি অ্যাডিটিভ লগ-রেশিও ট্রান্সফর্মের জন্য ব্যবহার করতে পারেন (অনুমানের স্পষ্ট ধারণাটি বাদ দিয়ে এখানে মন্তব্য দেখুন )। সিএলআর বন্ধ থাকবে, কারণ এটি জ্যামিতিক গড় ব্যবহার করে। "শূন্য-স্ফীতিত কম্পোজিশনাল ডেটা" নিয়ে কাজ হয়েছে; উদাহরণস্বরূপ দেখুন এখানে , এখানে এবং এখানে
usεr11852

1
মনে হচ্ছে আপনি এই বিষয়টি সম্পর্কে আমার চেয়ে অনেক বেশি জানেন, @ usεr11852। আমার উত্তরটি প্রকৃতপক্ষে পরিস্থিতি প্রকৃতি সম্পর্কে এই তথ্যগুলি তুলে ধরার / ইস্যু উত্থাপন এবং একটি প্রাথমিক পরামর্শ দেওয়ার চেষ্টা করছিল। আপনার নিজের (আরও ভাল জানানো) উত্তর অবদান রাখবেন না কেন?
গুং - মনিকা পুনরায়

7

ভেরিয়েবলগুলি পৃথকভাবে রূপান্তর করা বুদ্ধিমানের কাজ নয় কারণ এগুলি একত্রে সম্পর্কিত (যেমন আপনি লক্ষ্য করেছেন) এবং কে-মানে করতে হবে কারণ ডেটা গণনা করা হয় (আপনি সম্ভবত, তবে কে-মানে অবিচ্ছিন্ন বৈশিষ্ট্য যেমন দৈর্ঘ্যের মতো দৈর্ঘ্যের ক্ষেত্রে করা ভাল) ।

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

প্রশ্ন থেকে উদাহরণ ডেটা অনুলিপি করা:

-----------------------------------------------------------
customer | count_red  |    count_blue   | count_green     |
-----------------------------------------------------------
c0       |    12      |        5        |       0         |
-----------------------------------------------------------
c1       |     3      |        4        |       0         |
-----------------------------------------------------------
c2       |     2      |       21        |       0         |
-----------------------------------------------------------
c3       |     4      |        8        |       1         |
-----------------------------------------------------------

জোড় বিবেচনা করুন c0এবং তাদের ফ্রিকোয়েন্সি টেবিলের জন্য চি-বর্গ পরিসংখ্যান c1গণনা করুন । এর স্কোয়ার রুটটি নিন (যেমন আপনি যখন সাধারণ ইউক্যালিডিয়ান দূরত্ব গণনা করেন তখন আপনি এটি গ্রহণ করেন)। এটাই তোমার দূরত্ব। দূরত্ব যদি 0 এর কাছাকাছি হয় তবে দুটি গ্রাহক একই রকম।2x3

এটি আপনাকে বিরক্ত করতে পারে যে আপনার টেবিলের সারিগুলিতে অঙ্কগুলি পৃথক হয় এবং তাই আপনি যখন বনামের সাথে তুলনা c0করেন এটি চি-বর্গ দূরত্বকে প্রভাবিত করে । তারপরে পি-স্কোয়ার দূরত্বের (মূল) গণনা করুন : বর্তমানে বিবেচিত দুটি সারিতে (গ্রাহক) মিলিত মোট গণনা কোথায় । এটি সামগ্রিক গণনাগুলিতে দূরত্ব আর্টকে স্বাভাবিক করা হয়।c1c0c2Phi-sq = Chi-sq/NN

Here is the matrix of sqrt(Chi-sq) distance between your four customers
 .000   1.275   4.057   2.292
1.275    .000   2.124    .862
4.057   2.124    .000   2.261
2.292    .862   2.261    .000

And here is the matrix of sqrt(Phi-sq) distance 
.000    .260    .641    .418
.260    .000    .388    .193
.641    .388    .000    .377
.418    .193    .377    .000

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


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

কোনও গ্রাহক যখন একটি একক ক্রয় করেন তখন তিনটি রঙের মধ্যে চয়ন করেন: তিনটি রঙ ধারণামূলকভাবে স্বতন্ত্র "ভেরিয়েবল" নয় are এছাড়াও আপনার ডেটা গণনা করা হয়। এটি তাত্ক্ষণিকভাবে আমার কাছে স্পষ্ট হয়েছিল যে চি-স্কোয়ার ভিত্তিক পরিমাপটি সর্বোত্তম হওয়া উচিত। আপনার শেষ পয়েন্টটি সম্পর্কে - আমি আপনাকে আবার জিজ্ঞাসা করতে পারি: কেন তাদের সাথে অন্যরকম আচরণ করা উচিত? একটি আপনাকে ক্লাস্টারিং কাজ করার জন্য একটি সমাধান দিয়েছে। এর মধ্যে এমন কিছু আছে যা আপনার পছন্দ নয় বা যা আপনাকে সন্দেহ করে?
ttnphns

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

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

2
অনুপযুক্ত স্বাভাবিককরণের মাধ্যমে মৌলিক বৈশিষ্ট্যগুলি ধ্বংস করা সহজ। উদাহরণস্বরূপ, যদি প্রতিটি সারিতে আপনার ডেটার পরিমাণ 1 হয়, প্রতিটি কলামকে স্বাভাবিক করা এই সম্পত্তিটিকে ধ্বংস করবে। এই জাতীয় ডেটাতে, আপনার পরিবর্তে উদাহরণস্বরূপ বিবিধ পদক্ষেপগুলি (বিতরণের দূরত্ব) বিবেচনা করা উচিত। ডেটা গণনা করার সময়, জ্যাকার্ডের মতো সেট ছেদ ব্যবস্থাগুলি আরও তথ্যপূর্ণ হতে পারে; তবে তাদের বাইনারি ভেক্টর দরকার। ইত্যাদি
কিট আছে - অ্যানি-মৌসে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.