จำเป็นหรือไม่ที่จะต้องทำให้ข้อมูลของคุณเป็นมาตรฐานก่อนการทำคลัสเตอร์


23

จำเป็นหรือไม่ที่จะต้องทำให้ข้อมูลของคุณเป็นมาตรฐานก่อนคลัสเตอร์ ในตัวอย่างจากscikit learnเกี่ยวกับ DBSCAN ที่นี่พวกเขาทำสิ่งนี้ในบรรทัด:

X = StandardScaler().fit_transform(X)

แต่ฉันไม่เข้าใจว่าทำไมจึงมีความจำเป็น ท้ายที่สุดการจัดกลุ่มไม่ถือว่าเป็นการกระจายข้อมูลโดยเฉพาะ - มันเป็นวิธีการเรียนรู้ที่ไม่มีผู้ดูแลดังนั้นวัตถุประสงค์ของมันก็คือการสำรวจข้อมูล

ทำไมจึงจำเป็นต้องแปลงข้อมูล?


ขอบคุณสำหรับคำตอบอย่างละเอียด! เพื่อติดตามคำตอบทั้งหมดของคุณ: ฉันเข้าใจว่าหากฟีเจอร์นั้นมีขนาดต่างกันอาจทำให้เกิดปัญหาได้ อย่างไรก็ตามหากการวัดระยะทางถูกทำให้เป็นมาตรฐานกับความแปรปรวนสิ่งนี้จะได้ผลลัพธ์เช่นเดียวกับการขยายขนาดมาตรฐานก่อนทำการรวมกลุ่มหรือไม่ เช่นฉันมักจะใช้ระยะทางแบบยุคลิดแบบปกติที่เกี่ยวข้อง - สิ่งนี้จะลดผลกระทบจากการปรับสเกลได้หรือไม่
Candic3

คำตอบ:


19

การทำให้เป็นมาตรฐานนั้นไม่จำเป็นเสมอไป แต่ก็ไม่ค่อยเจ็บปวดนัก

ตัวอย่างบางส่วน:

K- หมายถึง :

K-หมายถึงการจัดกลุ่มเป็น "isotropic" ในทุกทิศทางของพื้นที่และดังนั้นจึงมีแนวโน้มที่จะสร้างกลุ่มมากขึ้นหรือน้อยลงรอบ (มากกว่ายาว) กลุ่ม ในสถานการณ์เช่นนี้ทำให้ความแปรปรวนไม่เท่ากันเท่ากับการเพิ่มน้ำหนักให้กับตัวแปรที่มีความแปรปรวนน้อยกว่า

ตัวอย่างใน Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

(FYI: ฉันจะตรวจสอบได้อย่างไรว่าชุดข้อมูลของฉันมีการทำคลัสเตอร์หรือไม่ทำคลัสเตอร์ (เช่นการสร้างคลัสเตอร์เดียว )

การทำคลัสเตอร์แบบกระจาย :

การวิเคราะห์เปรียบเทียบแสดงให้เห็นว่าผลการจัดกลุ่มแบบกระจายขึ้นอยู่กับประเภทของขั้นตอนการทำให้เป็นมาตรฐาน

เครือข่ายประสาทเทียม (อินพุต) :

ถ้าตัวแปรอินพุตถูกรวมเป็นเส้นตรงเช่นเดียวกับใน MLP ดังนั้นจึงไม่ค่อยจำเป็นอย่างยิ่งที่จะต้องสร้างมาตรฐานของอินพุตอย่างน้อยก็ในทางทฤษฎี เหตุผลก็คือการลดขนาดของเวกเตอร์อินพุตใด ๆ สามารถยกเลิกได้อย่างมีประสิทธิภาพโดยการเปลี่ยนน้ำหนักและอคติที่สอดคล้องกันทำให้คุณมีผลลัพธ์ที่แน่นอนเหมือนที่คุณเคยทำมาก่อน อย่างไรก็ตามมีเหตุผลหลายประการที่ทำให้การตั้งค่าอินพุตเป็นมาตรฐานสามารถทำให้การฝึกอบรมเร็วขึ้นและลดโอกาสที่จะติดอยู่ใน Optima ท้องถิ่น นอกจากนี้การลดน้ำหนักและการประมาณแบบเบย์สามารถทำได้สะดวกยิ่งขึ้นด้วยอินพุตมาตรฐาน

โครงข่ายประสาทเทียม (อินพุต / เอาท์พุต)

คุณควรทำสิ่งเหล่านี้กับข้อมูลของคุณหรือไม่ คำตอบคือมันขึ้นอยู่กับ

การทำให้มาตรฐานของตัวแปรอินพุตหรือเป้าหมายมีแนวโน้มที่จะทำให้กระบวนการฝึกอบรมมีพฤติกรรมที่ดีขึ้นโดยการปรับปรุงเงื่อนไขตัวเลข (ดู ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) ของปัญหาการปรับให้เหมาะสมและมั่นใจว่าค่าเริ่มต้นต่างๆ ค่าที่เกี่ยวข้องในการเริ่มต้นและการเลิกจ้างมีความเหมาะสม การกำหนดมาตรฐานเป้าหมายอาจส่งผลกระทบต่อฟังก์ชันวัตถุประสงค์

ควรสร้างมาตรฐานของคดีด้วยความระมัดระวังเพราะมันทิ้งข้อมูล หากข้อมูลนั้นไม่เกี่ยวข้องดังนั้นการกำหนดมาตรฐานให้เป็นประโยชน์ค่อนข้างมาก หากข้อมูลนั้นมีความสำคัญการกำหนดมาตรฐานให้กับกรณีสามารถเกิดความหายนะได้


ที่น่าสนใจคือการเปลี่ยนหน่วยการวัดอาจนำไปสู่การมองเห็นโครงสร้างการจัดกลุ่มที่แตกต่างกันมาก: Kaufman, Leonard และ Peter J. Rousseeuw .. "การค้นหากลุ่มในข้อมูล: บทนำสู่การวิเคราะห์กลุ่ม" (2005)

ในบางแอปพลิเคชันการเปลี่ยนหน่วยการวัดอาจนำไปสู่การเห็นโครงสร้างการจัดกลุ่มที่แตกต่างกันมาก ตัวอย่างเช่นอายุ (เป็นปี) และส่วนสูง (ในหน่วยเซนติเมตร) ของคนในจินตนาการสี่คนได้รับในตารางที่ 3 และลงจุดในรูปที่ 3 ปรากฏว่า {A, B) และ {C, 0) เป็นสองกลุ่มที่แยกจากกัน . ในทางกลับกันเมื่อความสูงแสดงเป็นฟุตหนึ่งจะได้รับตารางที่ 4 และรูปที่ 4 ซึ่งกลุ่มที่เห็นได้ชัดตอนนี้คือ {A, C} และ {B, D} พาร์ติชั่นนี้แตกต่างจากครั้งแรกอย่างสิ้นเชิงเพราะแต่ละวิชาได้รับเพื่อนอีกคน (รูปที่ 4 จะแบนยิ่งขึ้นหากวัดอายุเป็นวัน)

เพื่อหลีกเลี่ยงการพึ่งพาการเลือกหน่วยการวัดสิ่งนี้จึงมีตัวเลือกในการกำหนดมาตรฐานข้อมูล สิ่งนี้จะแปลงการวัดเริ่มต้นเป็นตัวแปรแบบไม่มีหน่วย

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

Kaufman และคณะ ดำเนินการต่อด้วยข้อควรพิจารณาที่น่าสนใจ (หน้า 11):

จากมุมมองทางปรัชญาการสร้างมาตรฐานไม่สามารถแก้ปัญหาได้ แท้จริงแล้วการเลือกหน่วยการวัดทำให้น้ำหนักสัมพัทธ์ของตัวแปรเพิ่มขึ้น การแสดงตัวแปรในหน่วยที่เล็กลงจะนำไปสู่ช่วงที่กว้างขึ้นสำหรับตัวแปรนั้นซึ่งจะมีผลอย่างมากต่อโครงสร้างผลลัพธ์ ในอีกทางหนึ่งโดยการกำหนดมาตรฐานหนึ่งความพยายามที่จะทำให้น้ำหนักทั้งหมดมีค่าเท่ากันโดยหวังว่าจะบรรลุเป้าหมาย เช่นนี้มันอาจถูกใช้โดยผู้ประกอบการที่ไม่มีความรู้มาก่อน อย่างไรก็ตามอาจเป็นไปได้ว่าตัวแปรบางอย่างมีความสำคัญมากกว่าปัจจัยอื่น ๆ ในแอปพลิเคชันเฉพาะและจากนั้นการกำหนดน้ำหนักควรตั้งอยู่บนพื้นฐานของความรู้ในเรื่อง (ดูเช่น Abrahamowicz, 1985) ในทางกลับกัน, มีความพยายามคิดค้นเทคนิคการจัดกลุ่มที่ไม่ขึ้นกับขนาดของตัวแปร (Friedman and Rubin, 1967) ข้อเสนอของ Hardy และ Rasson (1982) คือการค้นหาพาร์ติชันที่ลดปริมาตรรวมของเปลือกนูนของคลัสเตอร์ โดยหลักการแล้ววิธีการนี้ไม่แปรเปลี่ยนไปตามการแปลงเชิงเส้นของข้อมูล แต่น่าเสียดายที่ไม่มีอัลกอริธึมสำหรับการนำไปใช้ (ยกเว้นการประมาณที่ จำกัด ไว้เพียงสองมิติ) ดังนั้นภาวะที่กลืนไม่เข้าคายไม่ออกของมาตรฐานดูเหมือนจะหลีกเลี่ยงไม่ได้ในปัจจุบันและโปรแกรมที่อธิบายไว้ในหนังสือเล่มนี้ปล่อยให้ทางเลือกขึ้นอยู่กับผู้ใช้ ข้อเสนอของ Hardy และ Rasson (1982) คือการค้นหาพาร์ติชันที่ลดปริมาตรรวมของเปลือกนูนของคลัสเตอร์ โดยหลักการแล้ววิธีการนี้ไม่แปรเปลี่ยนไปตามการแปลงเชิงเส้นของข้อมูล แต่น่าเสียดายที่ไม่มีอัลกอริธึมสำหรับการนำไปใช้ (ยกเว้นการประมาณที่ จำกัด ไว้เพียงสองมิติ) ดังนั้นภาวะที่กลืนไม่เข้าคายไม่ออกของมาตรฐานดูเหมือนจะหลีกเลี่ยงไม่ได้ในปัจจุบันและโปรแกรมที่อธิบายไว้ในหนังสือเล่มนี้ปล่อยให้ทางเลือกขึ้นอยู่กับผู้ใช้ ข้อเสนอของ Hardy และ Rasson (1982) คือการค้นหาพาร์ติชันที่ลดปริมาตรรวมของเปลือกนูนของคลัสเตอร์ โดยหลักการแล้ววิธีการนี้ไม่แปรเปลี่ยนไปตามการแปลงเชิงเส้นของข้อมูล แต่น่าเสียดายที่ไม่มีอัลกอริธึมสำหรับการนำไปใช้ (ยกเว้นการประมาณที่ จำกัด ไว้เพียงสองมิติ) ดังนั้นภาวะที่กลืนไม่เข้าคายไม่ออกของมาตรฐานดูเหมือนจะหลีกเลี่ยงไม่ได้ในปัจจุบันและโปรแกรมที่อธิบายไว้ในหนังสือเล่มนี้ปล่อยให้ทางเลือกขึ้นอยู่กับผู้ใช้


1
คำตอบนี้เป็นปรากฏการณ์
Candic3

6

ขอแนะนำให้ทำข้อมูลให้เป็นมาตรฐานเพราะมิฉะนั้นช่วงของค่าในแต่ละคุณลักษณะจะทำหน้าที่เป็นน้ำหนักเมื่อพิจารณาวิธีจัดกลุ่มข้อมูลซึ่งโดยทั่วไปไม่พึงประสงค์

ตัวอย่างเช่นพิจารณาตัวชี้วัดมาตรฐานสำหรับอัลกอริธึมการจัดกลุ่มส่วนใหญ่ (รวมถึง DBSCAN ในชุดการเรียนรู้วิทยาศาสตร์ -) euclideanหรือที่เรียกว่าบรรทัดฐาน L2 หากหนึ่งในคุณลักษณะของคุณมีช่วงของค่าที่มากกว่าช่วงอื่น ๆ การจัดกลุ่มจะถูกครอบงำโดยคุณลักษณะนั้นอย่างสมบูรณ์ หากต้องการแสดงตัวอย่างนี้ให้ดูตัวอย่างง่ายๆด้านล่าง:

>>> import numpy as np
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.metrics.pairwise import euclidean_distances
>>> 
>>> X = np.array([[1,2,100],[4,3,50],[1,1,75]])
>>> 
>>> print X
[[  1   2 100]
 [  4   3  50]
 [  1   1  75]]
>>> 
>>> print euclidean_distances(X)
[[  0.          50.0999002   25.01999201]
 [ 50.0999002    0.          25.25866188]
 [ 25.01999201  25.25866188   0.        ]]
>>> print euclidean_distances(StandardScaler().fit_transform(X))
[[ 0.          3.46410162  1.73205081]
 [ 3.46410162  0.          3.46410162]
 [ 1.73205081  3.46410162  0.        ]]

จากนี้คุณจะเห็นว่าระยะทางแบบยุคลิดระหว่างรุ่นที่ไม่ได้มาตรฐานถูกควบคุมโดยคอลัมน์ที่สามเนื่องจากช่วงของค่านั้นมีขนาดใหญ่กว่าอีกสองช่วง อย่างไรก็ตามเมื่อข้อมูลถูกทำให้เป็นมาตรฐานสิ่งนี้จะไม่เป็นปัญหาอีกต่อไปและให้น้ำหนักคุณลักษณะแต่ละอย่างเท่ากันเมื่อคำนวณระยะห่างระหว่างจุดข้อมูลแต่ละจุด


1

ไม่จำเป็นต้องสร้างมาตรฐานอย่างเคร่งครัดไม่ว่าจะจำเป็นหรือไม่ขึ้นอยู่กับการวัดระยะทางที่คุณเลือก

ตัวอย่างเช่นหากคุณเลือกระยะทาง Mahalanobis การแยกจะขึ้นอยู่กับจำนวนของส่วนเบี่ยงเบนมาตรฐานที่แยกจุดและไม่ใช่ระยะห่างแน่นอนระหว่างพวกเขาเช่นนี้เป็นมาตรวัดที่ไม่แปรเปลี่ยน

เช่นเดียวกับหลาย ๆ สิ่งในการเรียนรู้ของเครื่องไม่มีคำตอบที่ยากและรวดเร็วและวิธีเดียวที่จะรู้ได้อย่างแน่นอนคือการใช้เทคนิคที่หลากหลายซึ่งจะให้ผลลัพธ์ที่เหมาะสมที่สุดสำหรับข้อมูลของคุณ


0

ฉันพบว่าในบางกรณีมีประโยชน์ในการกำหนดฟังก์ชั่น "การประเมินธุรกิจ" ซึ่งกำหนด "ความสำคัญ" ของขนาดที่ใช้สำหรับการทำคลัสเตอร์ ยกตัวอย่างเช่นสำหรับการรวมกลุ่มลูกค้าที่เป็นกลุ่มกรีนโกรเซอร์ถ้าแอปเปิ้ลมีราคาแพงกว่าส้มถึงสองเท่าจำนวนแอปเปิ้ลจะเพิ่มขึ้นเป็นสองเท่า


แต่คุณไม่สามารถรวมเป็นคุณสมบัติเพิ่มเติมที่คุณรวมกลุ่มไว้ เช่นราคาจะกลายเป็นคุณสมบัติในการจัดกลุ่มบน?
Candic3
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.