# 最近临近分类算法:简称KNN,最简单的机器学习算法之一
# 核心逻辑:在距离空间内,如果一个样本的最接近的k个邻居里,绝大多数属于某个类别,则该样本属于这个类别
from sklearn import neighbors
import warnings
warnings.filterwarnings('ignore')
data= pd.DataFrame({'name':['北京遇上西雅图','喜欢你','疯狂动物城','战狼2','力王','敢死队'],
'fight':[3,2,1,101,99,63],
'kiss':[104,100,81,10,5,2],
'type':['Romance','Romance','Romance','Action','Action','Action']})
print(data)
knn = neighbors.KNeighborsClassifier()
knn.fit(data[['fight','kiss']],data['type'])
print('预测电影类型',knn.predict([[18,90]]))
plt.scatter(data[data['type'] == 'Romance']['fight'],data[data['type'] == 'Romance']['kiss'],color = 'r',marker = 'o',label='Romance')
plt.scatter(data[data['type'] == 'Action']['fight'],data[data['type'] == 'Action']['kiss'],color = 'g',marker = 'o',label='Action')
plt.grid()
plt.legend()
# 图表展示
plt.scatter(18,90,color='r',marker = 'x',label = 'Remance')
plt.ylabel('kiss')
plt.xlabel('fight')
plt.text(18,90,' 《你的名字》',color='r')