[머신러닝] 5분 설명의 평가 알고리즘
일단
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
Reference
이 문제에 관하여([머신러닝] 5분 설명의 평가 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hikaru_/items/ef622ccc333ad41cadb2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
Reference
이 문제에 관하여([머신러닝] 5분 설명의 평가 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hikaru_/items/ef622ccc333ad41cadb2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# モジュール読み込み
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
Reference
이 문제에 관하여([머신러닝] 5분 설명의 평가 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hikaru_/items/ef622ccc333ad41cadb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)