키타미 유의 체형은 얼마나 평균적인가

키타미 유의 신장, 체중, 3 사이즈는 신데렐라 걸스의 아이돌의 평균값에 꽤 가깝다고 잘 알려져 있기 때문에 실제로 얼마나 가까운지, 또 다른 아이돌은 어떨지, 3가지 방법으로 정량 확실히 확인해 보았습니다. (통계학 초보자이므로 그 방법이 타당한지는 판단하기 어렵습니다만...)

다만, 계산에 있어서, 프로파일로 수치를 확인할 수 없는 아이돌은 제외했습니다(오누마 구루미, 사토 신, 후타바 안즈, 꿈꾸는).

환경
google colab(python3.6.8)
사용한 파일은 여기 htps : // 기주 b. 이 m/ysk0832/호 by

소개



평균치와 비교해 본다.



신장
체중
B
W
H


평균값
156.23
43.2
80.88
56.31
81.24

키타미 유
156
43
82
57
82


확실히 거의 거의 같습니다.

방법 1: cos 유사도



cos 유사도는 문서 비교 등에 자주 사용되는 지표입니다. 식은 간단하고 내적의 정의를 변형 뿐입니다.
$$\cos\theta=\frac{a\cdot b}{||a||||b||}$$

코드는 다음
import numpy as np 
import pandas as pd

# 関数定義
# 内積
def ip(a,b):
  return (a*b).sum()
# ノルム
def norm(x):
  sum=(x*x).sum()
  return np.sqrt(sum)
# 類似度
def sim(a,b):
  return ip(a,b)/(norm(a)*norm(b))

# csv読み込み
df=pd.read_csv("cg.csv")
# 確認
print(df)

# 平均
mean=df.mean(numeric_only=True)

# 計算結果をリストに保存
simlist=[]
for i in range(0,186):
  result=sim(mean,df.iloc[i,1:6])
  print(result)
  simlist.append(result)

# 列を追加
df["類似度"]=simlist

# 類似度が高い順に出力
print(df.sort_values("類似度",ascending=False))

결과(상위 10명, 하위 10명)



유는 3위였습니다. 미후네 미유 씨가 2위...?!

방법 2: 정규화



각 열 벡터를 0-1로 정규화하고 cos 유사도를 다시 계산해 보겠습니다.
$$\frac{x-x_{min}}{x_{max}-x_{min}}$$
# 一旦削除
df=df.drop("類似度",axis=1)

# 正規化して再計算

# 名前抜き
df_tmp=df.iloc[:,1:6]

# 正規化
df2=(df_tmp-df_tmp.min())/(df_tmp.max()-df_tmp.min())
mean2=(mean-df_tmp.min())/(df_tmp.max()-df_tmp.min())

# 計算結果をリストに保存
simlist=[]
for i in range(0,186):
  result=sim(mean2,df2.iloc[i,:])
  print(result)
  simlist.append(result)

# 列を追加
df["類似度"]=simlist

# 類似度が高い順に出力
print(df.sort_values("類似度",ascending=False))

결과



유는 7위. 조금 반 정도 쓰고 있네요.

그렇다고해도, 모두 유사도 0.99 넘어서 거의 같지 않을까 생각해 버립니다. 이것은 분명히 이번 데이터가 모두 양수인 것도 원인인 것 같습니다.
htps : // 또는 rt만 0. 하테나 bぉg. 코m/엔트리/2019/05/22/_이s%에9%아1%9에%에4%BC%BC%에5%이면%아6%에3%81%아에%에6% 아 C% 아
또, cos 유사도는 어디까지나 벡터의 개방 상태를 보고 있는 것이며, 가까운 점이기 때문에 유사도가 높다고는 일괄적으로는 말할 수 없습니다. 미유씨가 2위가 된 것도 그 때문이라고 생각됩니다.
그래서 방법 3에.

방법 3: 거리



단순히 평균값에서 유클리드 거리를 계산합니다.
df=df.drop("類似度",axis=1)

# 平均値との距離
dlist=[]
for i in range(0,186):
  d=norm(df.iloc[i,1:6]-mean)
  dlist.append(d)

# 列を追加
df["距離"]=dlist

# 距離が近い順に出力
print(df.sort_values("距離"))

결과



키타미 유 1위! ! ! ! ! !

요약



이번은 「체형이 가까운」의 해석의 방법에 의해 평가 지표도 바뀌었을까. 유사도는 평균과의 비교라고 하기보다는, 「이 두 사람은 신장은 마치 다르지만 어느 쪽도 마른형이다」같은 것을 알고 싶을 때에 사용하면 좋다고 느끼십니까?

그래서,
키타미 유는 신데렐라 걸즈에서 가장 평균적인 체형의 아이돌이다

좋은 웹페이지 즐겨찾기