تفاوت واسط و میانگینتفاوت واسط و میانگین
**واسط** عضوی از یک مجموعه داده یا خوشه (به انگلیسی: Cluster) بوده که مجموع تفاوت‌هایش از دیگر اعضای آن مجموعه کمینه است. واسط‌ از نظر عملکرد شبیه به میانگین (به انگلیسی: Mean) و مرکزوار (به انگلیسی: Centroid) است. البته، یک تفاوت اساسی میان آن‌ها وجود دارد. باید به این نکته توجه کرد که واسط‌ حتما عضوی از مجموعه مدنظر است؛ این در حالی است که میانگین و مرکزوار می‌توانند مقداری خارج از مجموعه داشته باشند.

گاهی اوقات در ساختارهایی مانند گراف‌ها نمی‌توان از میانگین و مرکزوار استفاده کرد؛ زیرا، ممکن است این شاخص‌های مرکزی خارج از ساختار گراف تعریف شوند. به همین دلیل است که استفاده از واسط در این حوزه کاربرد بیش‌تری دارد؛ چرا که واسط مجموعه رئوس یک گراف، یک راس از میان آن‌ها است. هم‌چنین، در حوزه بیان ژن نیز نمی‌توان از میانگین و مرکزوار به عنوان نماینده مجموعه داده استفاده کرد.

اساس تعریف واسط‌ها به استفاده‌ی آن‌ها در الگوریتم خوشه‌بندی کی‌-واسط (به انگلیسی: K-Medoids) بر می‌گردد. از نظر عملکردی، الگوریتم کی‌-واسط شبیه به الگوریتم کی-میانگین (به انگلیسی: K-Means) است. نقطه‌ی تفاوت این دو الگوریتم را می‌توان در امکان تعریف‌پذیر نبودن میانگین دانست. در این صورت، استفاده از الگوریتم کی‌-واسط پیشنهاد می‌شود.

تعریف
-----

فرض کنید {\textstyle X:=\{x\_{1},x\_{2},...x\_{n}\}} مجموعه‌ نقاطی از یک فضای متری (به انگلیسی: Metric space) با تابع فاصله‌ {\textstyle d} باشد. واسط این مجموعه، یا همان {\textstyle x\_{\text{medoid}}}، به صورت زیر تعریف می‌شود:


x

medoid

=
arg
⁡

min

x
∈
X

∑

i
=
1

n

d
(
x
,

x

i

)

{\displaystyle x\_{\text{medoid}}=\arg \min \_{x\in X}\sum \_{i=1}^{n}d(x,x\_{i})}

{\displaystyle x_{\text{medoid}}=\arg \min _{x\in X}\sum _{i=1}^{n}d(x,x_{i})}

مثال
----

فرض کنید {\textstyle X:=\{(1,3),(4,2),(8,4),(2,7)\}} یک مجموعه داده دلخواه در فضای دو بعدی باشد. فاصله‌ی اقلیدسی دو به دوی نقاط به صورت زیر است: 

مثالی از مجموعه دو بعدی

d
(

x

1

,

x

2

)
=
d
(

x

2

,

x

1

)
=

(
4
−
1

)

2

+
(
2
−
3

)

2

≃
3.16

{\displaystyle d(x\_{1},x\_{2})=d(x\_{2},x\_{1})={\sqrt {(4-1)^{2}+(2-3)^{2}}}\simeq 3.16}

{\displaystyle d(x_{1},x_{2})=d(x_{2},x_{1})={\sqrt {(4-1)^{2}+(2-3)^{2}}}\simeq 3.16}

d
(

x

1

,

x

3

)
=
d
(

x

3

,

x

1

)
=

(
7
−
3

)

2

+
(
2
−
1

)

2

≃
4.12

{\displaystyle d(x\_{1},x\_{3})=d(x\_{3},x\_{1})={\sqrt {(7-3)^{2}+(2-1)^{2}}}\simeq 4.12}

{\displaystyle d(x_{1},x_{3})=d(x_{3},x_{1})={\sqrt {(7-3)^{2}+(2-1)^{2}}}\simeq 4.12}

d
(

x

1

,

x

4

)
=
d
(

x

4

,

x

1

)
=

(
4
−
3

)

2

+
(
8
−
1

)

2

≃
7.07

{\displaystyle d(x\_{1},x\_{4})=d(x\_{4},x\_{1})={\sqrt {(4-3)^{2}+(8-1)^{2}}}\simeq 7.07}

{\displaystyle d(x_{1},x_{4})=d(x_{4},x_{1})={\sqrt {(4-3)^{2}+(8-1)^{2}}}\simeq 7.07}

d
(

x

2

,

x

3

)
=
d
(

x

3

,

x

2

)
=

(
7
−
2

)

2

+
(
2
−
4

)

2

≃
5.38

{\displaystyle d(x\_{2},x\_{3})=d(x\_{3},x\_{2})={\sqrt {(7-2)^{2}+(2-4)^{2}}}\simeq 5.38}

{\displaystyle d(x_{2},x_{3})=d(x_{3},x_{2})={\sqrt {(7-2)^{2}+(2-4)^{2}}}\simeq 5.38}

d
(

x

2

,

x

4

)
=
d
(

x

4

,

x

2

)
=

(
4
−
2

)

2

+
(
8
−
4

)

2

≃
4.47

{\displaystyle d(x\_{2},x\_{4})=d(x\_{4},x\_{2})={\sqrt {(4-2)^{2}+(8-4)^{2}}}\simeq 4.47}

{\displaystyle d(x_{2},x_{4})=d(x_{4},x_{2})={\sqrt {(4-2)^{2}+(8-4)^{2}}}\simeq 4.47}

d
(

x

3

,

x

4

)
=
d
(

x

4

,

x

3

)
=

(
4
−
7

)

2

+
(
8
−
2

)

2

≃
6.71

{\displaystyle d(x\_{3},x\_{4})=d(x\_{4},x\_{3})={\sqrt {(4-7)^{2}+(8-2)^{2}}}\simeq 6.71}

{\displaystyle d(x_{3},x_{4})=d(x_{4},x_{3})={\sqrt {(4-7)^{2}+(8-2)^{2}}}\simeq 6.71}

∑

i
=
1

n

d
(

x

1

,

x

i

)
=
0
+
3.16
+
4.12
+
7.07
=
14.35

{\displaystyle \sum \_{i=1}^{n}d(x\_{1},x\_{i})=0+3.16+4.12+7.07=14.35}

{\displaystyle \sum _{i=1}^{n}d(x_{1},x_{i})=0+3.16+4.12+7.07=14.35}

∑

i
=
1

n

d
(

x

2

,

x

i

)
=
3.16
+
0
+
5.38
+
4.47
=
13.01

{\displaystyle \sum \_{i=1}^{n}d(x\_{2},x\_{i})=3.16+0+5.38+4.47=13.01}

{\displaystyle \sum _{i=1}^{n}d(x_{2},x_{i})=3.16+0+5.38+4.47=13.01}

∑

i
=
1

n

d
(

x

3

,

x

i

)
=
4.12
+
5.38
+
0
+
6.71
=
16.21

{\displaystyle \sum \_{i=1}^{n}d(x\_{3},x\_{i})=4.12+5.38+0+6.71=16.21}

{\displaystyle \sum _{i=1}^{n}d(x_{3},x_{i})=4.12+5.38+0+6.71=16.21}

∑

i
=
1

n

d
(

x

4

,

x

i

)
=
7.07
+
4.47
+
6.71
+
0
=
18.25

{\displaystyle \sum \_{i=1}^{n}d(x\_{4},x\_{i})=7.07+4.47+6.71+0=18.25}

{\displaystyle \sum _{i=1}^{n}d(x_{4},x_{i})=7.07+4.47+6.71+0=18.25}
با توجه به محاسبات بالا {\textstyle x\_{\text{medoid}}=x\_{2}} خواهد بود و مجموع تفاوت‌های این عضو از دیگر اعضای مجموعه {\textstyle X} کمینه است.

الگوریتم‌های محاسبه واسط
------------------------

فرض کنید مجموعه {\textstyle X:=\{x\_{1},x\_{2},...x\_{n}\}} داده شده است.

ساده‌ترین الگوریتمی که می‌توان برای محاسبه واسط ارائه کرد، محاسبه‌ی دو به دوی فاصله‌‌ی داده‌ها از یک‌دیگر است. این کار از {\textstyle O(n^{2})} زمان خواهد برد. با این حال، الگوریتم‌های دیگری وجود دارند که در حالات خاصی می‌توانند واسط مجموعه را به صورت دقیق و یا تقریبی محاسبه کنند. تعدادی از این الگوریتم‌ها در زیر لیست شده‌اند:

### RAND

این الگوریتم میانگین فاصله هر نقطه تا بقیه نقاط را با نمونه‌برداری (به انگلیسی: Sampling) از زیرمجموعه‌ای تصادفی از نقاط دیگر تخمین می‌زند. این کار از {\textstyle O(n\log {n}/\epsilon ^{2})} زمان خواهد برد.

### TOPRANK

این الگوریتم با فرض داشتن یک آگاهی اولیه از توزیع فواصل متوسط می‌تواند واسط را به صورت دقیق و با احتمال زیاد محاسبه کند. این کار از {\textstyle O(n^{\frac {5}{3}}\log ^{\frac {4}{3}}n)} زمان خواهد برد.

### TRIMED

این الگوریتم با استفاده از نابرابری مثلثی و با داشتن یک آگاهی اولیه از توزیع نقاط می‌تواند واسط را به صورت دقیق محاسبه کند. این کار از {\textstyle O(n^{\frac {3}{2}}2^{\Theta (d)})} زمان خواهد برد.

### QUICK-SELECT

در صورتی که تمام نقاط مجموعه بر روی یک خط قرار بگیرند، کافی است میانه‌ این نقاط را محاسبه کنیم. این کار از {\textstyle O(n)} زمان خواهد برد.

منابع
-----

1. ↑  Struyf, Anja; Hubert, Mia; Rousseeuw, Peter (1997-02-10). "Clustering in an Object-Oriented Environment". *Journal of Statistical Software* (به انگلیسی). **1**: 1–30. doi:10.18637/jss.v001.i04. ISSN 1548-7660.
2. ↑  Van der Laan, Mark; Pollard, Katherine; Bryan, Jennifer (2003-08-01). "A new partitioning around medoids algorithm". *Journal of Statistical Computation and Simulation*. **73** (8): 575–584. doi:10.1080/0094965031000136012. ISSN 0094-9655.
3. ↑  Eppstein, David; & Wang, Joseph (2006); "Fast approximation of centrality", in *Graph Algorithms and Applications*, **5**, pp. 39-45
4. ↑  Okamoto, Kazuya; Chen, Wei; Li, Xiang-Yang (2008). Preparata, Franco P.; Wu, Xiaodong; Yin, Jianping (eds.). "Ranking of Closeness Centrality for Large-Scale Social Networks". *Frontiers in Algorithmics* (به انگلیسی). Berlin, Heidelberg: Springer: 186–195. doi:10.1007/978-3-540-69311-6\_21. ISBN 978-3-540-69311-6.
5. ↑  Newling, James; & Fleuret, François (2016); "A sub-quadratic exact medoid algorithm", in *Proceedings of the 20th International Conference on Artificial Intelligence and Statistics*, PMLR 54:185-193, 2017
6. ↑  Hoare, Charles Antony Richard (1961); "Algorithm 65: find", in *Communications of the ACM*, *4*(7), 321-322