[머신러닝] 5분 설명의 평가 알고리즘

7226 단어 기계 학습Python

일단


LT로 제작되기 때문에 구어의 보충 설명을 전제로 하고 5분의 제한이 있기 때문에 설명이 부족한 부분이 있습니다. m(__)m

컨텐트


기계 학습의 애니메이션 평론 기능을 사용하는 알고리즘의 한 예로 도해를 공식으로 제거하고 5분 정도 설명한다.
목표: 어떻게 평론을 하는지, 대체적인 인상을 사로잡았으면 좋겠다.

수정 절차


1, 좋아하는 애니메이션의 제목을 입력합니다.
2, 추천 애니메이션 TOP5 표시
※ 시청각 제어는 하지 않습니다.
※ 해외 니키의 데이터myanimelist.net

규정 (5min)


/데이터에 관하여.(1min)
・ 알고리즘에 관하여.(3min)
/버퍼 (1min)

데이터에 관하여.


Anime Recommendations Database (kaggle)
여기서 다운받았어요.

컨텐트


애니메이션 사용자당 10단계 평가
(예 처리 생략.

2966행(세로: 애니메이션 제목 수), 69500열(가로: 사용자 수)의 행렬입니다.
이렇게 하면 성분이 거의 0인 행렬을 희소 행렬이라고 부른다.
※ 실제로 희소 행렬을 유지하면 계산 효율이 떨어지기 때문에 csr_matrix로 변환합니다.

알고리즘 정보


scikit-learn의 Nearest Neighbors를 사용합니다.(싱크로율 활용)

형상


1. 각자의 애니메이션을 n차원 공간의 점에 넣는다
2. 가져온 애니메이션과 거리 (또는 각도) 가 비슷한 애니메이션에 대해 설명합니다.
공간에서 포착하는 것이 중요하다.
다음은 각각 상세하게 설명합니다!

1. 각자의 애니메이션을 n차원 공간의 점에 넣는다


알기 쉬운 2차원 (2인의 평가) 으로 고려하다.
아까 데이터에 의하면 팀(2966)×69500 ~ 듀얼 사용자 픽(2966)×2).
이번에 붉은 점이 입력되었을 때의 추천 애니메이션.
※ 그림이라면 5단계로 평가됩니다.

이해하기 쉽도록 라벨을 붙이다.

원래 이런 애니메이션은 n차원 공간의 좌표에 존재한다.(n은 사용자 수)
※ 제가 적당히 태그를 달았기 때문에 실제 데이터와는 상관이 없습니다.

2. 가져온 애니메이션과 거리 (또는 각도) 가 비슷한 애니메이션에 대해 설명합니다.



이번에는 각도(여현 유사도)를 사용하기 때문에 원점과 연결된 직선 2개의 작은 애니메이션을 선택합니다.
적재량을 초과한 비율이 가장 가깝다.
※ 이외에도 다양한 방법이 있습니다.그리고 결과도 다르다.
이건 이해하기 쉬워요.

코드


학습(NearestNeighbors)
# モジュール読み込み
from sklearn.neighbors import NearestNeighbors 
nn = NearestNeighbors(algorithm= "brute", metric= "cosine")

# 処理済みのデータを読み込み
model_NN = nn.fit(anime_data_csr)
구축된 모형으로 논평!
# 好きなアニメのタイトルを入力(English)
Anime = "Overlord"

# 表示処理、最も近い5つを取り出す。
distance, indice = model_NN.kneighbors(anime_data.iloc[anime_data.index== Anime].values.reshape(1,-1),n_neighbors=6)
for i in range(0, len(distance.flatten())):
    if  i == 0:
        print(anime_data[anime_data.index== Anime].index[0],"が好きな人へのおすすめアニメTOP5")
    else:
        print("【{0}位】【{1}】\n score {2}".format(i,anime_data.index[indice.flatten()[i]],round(distance.flatten()[i],5)),"\n")
결과
Overlord が好きな人へのおすすめアニメTOP5

【1位】【Gate: Jieitai Kanochi nite, Kaku Tatakaeri】
 score 0.38582 

【2位】【Dungeon ni Deai wo Motomeru no wa Machigatteiru Darou ka】
 score 0.43646 

【3位】【Rokka no Yuusha】
 score 0.44624 

【4位】【Gate: Jieitai Kanochi nite, Kaku Tatakaeri 2nd Season】
 score 0.46009 

【5位】【One Punch Man】
 score 0.48241 

총결산


python 모듈만 사용하면 누구나 간단하게 실현할 수 있습니다.
그러나 수학을 배우지 않으면 알고리즘의 취사 선택을 정확하게 할 수 없기 때문에 어느 정도의 지식이 필요하다.
끝.

참고 자료


kaggle kernels
sklearn.neighbors.NearestNeighbors

좋은 웹페이지 즐겨찾기