采用 KNN 算法实现一个简单的推荐系统

本文详细介绍了如何利用K近邻算法(KNN)构建一个简单的推荐系统。首先,我们探讨了KNN的基本原理,然后阐述了在推荐系统中选择特征的重要性。接着,通过实例展示了数据预处理、模型训练和预测过程。最后,我们讨论了KNN在推荐系统中的优缺点以及可能的改进策略。
摘要由CSDN通过智能技术生成
# coding=utf-8
# @Time    : 2019/12/7 15:46
# @Author  : Z
# @Email   : S
# @File    : KNNtest.py
import numpy as np
import pandas as pd
from sklearn import model_selection as ms
from math import sqrt
from sklearn.metrics import mean_squared_error
from sklearn.metrics import median_absolute_error
import warnings

#采用 KNN 算法实现一个简单的推荐系统

warnings.filterwarnings("ignore")

#训练集和测试集的划分标准
def train_test_split(fileName,type=1):
    header=['user_id','item_id','rating','timestamp']
    if(type==1):
        #sep:指定分隔符
        #names:指定列名
        df=pd.read_csv(fileName,sep='\t',names=header)
    else:
        #engine:选择读取的引擎
        df=pd.read_csv(fileName,sep='::',names=header,engine='python')
    #unique()为去重.shape[0]行个数
    #就是总共有多少个user_id
    n_users=df.user_id.unique().shape[0]
    #取出最大的user_id
    users=df.user_id.max()
    # 就是总共有多少个item_id
    n_items=df.item_id.unique().shape[0]
    # 取出最大的item_id
    items=df.item_id.max()

    print('Number of users =' + str(n_users) + ' | Number of movies = ' + str(n_items))
    print('The biggest ID of users = ' + str(users) + ' | The biggest ID of movies = ' + str(items))

    #test_size:样本占比
    train_data,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值