• 大小: 9.2MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-10
  • 语言: C/C++
  • 标签: 分类  数据挖掘  

资源简介

数据挖掘的上机实验,包括文档和代码,是用c++实现的,用于电影推荐。 本实验通过6040个用户对3952部电影的100多万条评价,利用基于网络结构的链路预测算法,使用二分法模型,将用户和产品看成抽象的节点,把用户对产品的选择关系构建成二部图,以此预测用户潜在喜爱的电影,将排序靠前的电影推荐给该用户,并预测其准确性。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
using namespace std;
double crr[6041][3953];
double crrt[3953][6041];
double drr[3953][3953];
double err[6041][3953];
int arr[6041];
int brr[3953];
//vector user[6041];
int main()
{
    int a b c;
    double sum x y w;
    vector::iterator iter;
    memset(arr 0 sizeof(arr));
    memset(brr 0 sizeof(brr));
    memset(crr 0 sizeof(crr));
    memset(crrt 0 sizeof(crrt));
    //for(int i = 0; i < 6041; i++){
    //    user[i].clear();
    //}
    FILE *fp = fopen(“ratings.txt“ “r“);
    while(!feof(fp)) {
        fscanf(fp “%d %d %d\n“ &a &b &c);
        arr[a]++;
        brr[b]++;
        crrt[b][a] = 1;
        if(c > 3) {
           // user[a].push_back(b);
           crr[a][b] = 1;
        }
    }
    fclose(fp);
    //FILE *fpt = fopen(“w.txt“ “a“);
    for(int i = 1; i <= 3952; i++) {
        for(int j = 1; j <= 3952; j++) {
            sum = 0;
            for(int z = 1; z <= 6040; z++) {
                /*iter = find(user[z].begin() user[z].end() i);
                if(iter != user[i].end())
                    x = 1;
                else
                    x = 0;
                iter = find(user[z].begin() user[z].end() j);
                if(iter != user[i].end())
                    y = 1;
                else
                    y = 0;*/
                sum += crr[z][i]*crr[z][j]/arr[z];
            }
            if(brr[j] == 0)
                w = 0;
            else
                w = sum / brr[j];
            drr[i][j] = w*100000;
            //cout << w*100000 << endl;
            //fprintf(fpt “%.0f “ w*100000);
        }
        //fprintf(fpt “\n“);
    }
    //fclose(fpt);
    for(int i = 1; i < 6041; i++) {
        for( int j = 1; j < 3953; j++) {
                err[i][j] = 0;
            for(int z = 1; z < 3953; z++) {
               err[i][j] += drr[j][z] * crrt[z][i];
            }
        }
    }
    FILE *fpt = fopen(“ww.txt“ “a“);
    for(int i = 1; i < 6041; i++) {
        for(int j = 1; j < 3953; j++) {
            fprintf(fpt “%.0f “ err[i][j]);
        }
        fprintf(fpt “\n“);
    }
    fclose(fpt);
    return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-04 23:36  数据挖掘第一次上机报告—16030147001—钱宇珊\
     文件        2304  2018-05-03 20:59  数据挖掘第一次上机报告—16030147001—钱宇珊\movie.cpp
     文件         241  2018-04-14 16:26  数据挖掘第一次上机报告—16030147001—钱宇珊\movie.py
     文件    12553665  2018-04-14 16:26  数据挖掘第一次上机报告—16030147001—钱宇珊\ratings.txt
     文件         156  2018-05-04 23:38  数据挖掘第一次上机报告—16030147001—钱宇珊\readme.txt
     文件        1353  2018-05-04 23:02  数据挖掘第一次上机报告—16030147001—钱宇珊\recommend.cpp
     文件         244  2018-05-03 20:29  数据挖掘第一次上机报告—16030147001—钱宇珊\reconmend.py
     文件        1346  2018-05-04 23:21  数据挖掘第一次上机报告—16030147001—钱宇珊\verify.cpp
     文件    34029595  2018-04-17 22:34  数据挖掘第一次上机报告—16030147001—钱宇珊\w.txt
     文件       55704  2018-05-04 23:31  数据挖掘第一次上机报告—16030147001—钱宇珊\数据挖掘第一次.docx

评论

共有 条评论