本科毕设题目推荐系统

2023-11-03

from numpy import *
import random
import numpy as np
from sklearn.cluster import KMeans
import re
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors
import csv
import pandas as pd
from sklearn.metrics import silhouette_score
from scipy.spatial.distance import cdist
import imp
import imp

#计算两个点之间的欧氏距离
def calcuDistance(vec1, vec2):
    return np.sqrt(np.sum(np.square(vec1 - vec2)))

#根据距离质心的大小定义用户目前所处的等级
def UserRank(AC_num, ua_centroids):
    min = 100000
    userRank = mini = -1
    rows = shape(ua_centroids)[0]
    for i in range(rows):
        if calcuDistance(AC_num, ua_centroids[i][0]) < min:
            min = calcuDistance(AC_num, ua_centroids[i][0])
            mini = i
    return mini+1


#统计每个用户等级的人数
def UserRank_cnt():
    cntuserrank1 = 0
    cntuserrank2 = 0
    cntuserrank3 = 0
    cntuserrank4 = 0
    cntuserrank5 = 0
    rows = shape(UAKMat)[0]
    for i in range(rows):
        x = UserRank(UAKarray[i][0], ua_centroids)
        if x == 1:
            cntuserrank1 += 1
        elif x == 2:
            cntuserrank2 += 1
        elif x == 3:
            cntuserrank3 += 1
        elif x == 4:
            cntuserrank4 += 1
        else:
            cntuserrank5 += 1
    return cntuserrank1,cntuserrank2,cntuserrank3,cntuserrank4,cntuserrank5


#根据AC题量的多少给不同题目自定义难度等级
def ProbRank_Cnt(AKMat, pa_centroids):
    cntprobrank1 = 0
    cntprobrank2 = 0
    cntprobrank3 = 0
    cntprobrank4 = 0
    cntprobrank5 = 0
    rows1 = shape(AKMat)[0]
    rows2 = shape(pa_centroids)[0]
    ARKMat = AKMat
    ARKMat = np.insert(ARKMat, 1, values=0, axis=1)
    for i in range(rows1):  # i=0
        min = 1000000
        for j in range(rows2):
            if calcuDistance(AKMat[i], pa_centroids[j]) < min:
                min = calcuDistance(AKMat[i], pa_centroids[j])
                minJ = j
        ARKMat[i, 1] = 5-minJ
        if minJ == 0:
            cntprobrank5 += 1
        elif minJ == 1:
            cntprobrank4 += 1
        elif minJ == 2:
            cntprobrank3 += 1
        elif minJ == 3:
            cntprobrank2 += 1
        elif minJ == 4:
            cntprobrank1 += 1
    return ARKMat,cntprobrank1,cntprobrank2,cntprobrank3,cntprobrank4,cntprobrank5


#根据不同难度等级所带的标记不同,统计出不同难度等级的题量有多少
def showRecommend(APARKMat):
    ProbRank_Cnt(AKMat, pa_centroids)
    centroids0 = []
    centroids1 = []
    centroids2 = []
    centroids3 = []
    centroids4 = []
    row = shape(APARKMat)[0]
    for i in range(row):
        if APARKMat[i, 2] == 1:
            centroids0.append(APARKMat[i, 0])
        elif APARKMat[i, 2] == 2:
            centroids1.append(APARKMat[i, 0])
        elif APARKMat[i, 2] == 3:
            centroids2.append(APARKMat[i, 0])
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本科毕设题目推荐系统 的相关文章

随机推荐

  • MySQL架构原理(MySQL体系架构、MySQL运行机制、MySQL存储引擎)

    一 MySQL体系架构 MySQL Server架构大致可以分为 网络连接层 服务层 存储引擎层和系统文件层 网络连接层 客户端连接器 Client Connectors 提供与MySQL服务器建立连接的支持 目前主流服务器编程技术 例如
  • SpringBoot发送http请求

    SpringBoot发送http请求 添加依赖
  • 隐变量(Hidden Variables)

    在软件开发的过程中的确存在另外的变量 但是他们并不是隐变量的 我们只是忽略了它们 这些被称为 人 的变量很多人都有可能成为 它具有不可预知性除非你在寻找一种方法论来排除他们 应用方法论的目的是什么呢 我认为就是得到一个可以忽略掉任何相关的独
  • 【AI文本工具站】日活近4万

    前言 承蒙网友厚爱 AI文本工具站 目前日活已经近4万 每天对话超过30万次 作为一个免费的工具网站 能够得到这么多人的认可和使用 真的是莫大的荣幸 点击前往 AI文本工具站 功能介绍 ChatGPT对话 国内可用 免费 免登录 无限制 文
  • Acwing3508 最长公共子串

    Acwing3508 最长公共子串 一眼dp 定义f i j 为以a i 结尾的a的子串与以b j 结尾的b的子串的最大公共后缀串的长度 分析最后一步 用a i 1 lt i lt strlen a 与 b j 1 lt j lt strl
  • P3612 [USACO17JAN]Secret Cow Code S 分治 (清楚思路 + 代码简洁)

    题目链接 P3612 USACO17JAN Secret Cow Code S 这道题的思路是给你一个字符串 这个字符串变长的规律是先加尾结点 然后再把前面的部分平移到后面 a b 反 转 后
  • 云笔记横向评测:印象笔记、有道云笔记、为知笔记、OneNote、Notion

    某款软件是否好用 既需要根据其功能特性评估其优点和缺点 也需要分析用户的基本需求 以下是常见云笔记的深度评测 云笔记评测标准 分析每款笔记软件的核心特色 优点 缺点及使用场景 具体包括 印象笔记 有道云笔记 为知笔记 OneNote Not
  • 安卓第三方开源库

    原文在简书 这是地址 Android开源库V Layout 淘宝 天猫都在用的UI框架 赶紧用起来吧 安卓开发者不得不收藏的工具学技术就去懒人博客安卓那些你不得不收藏的开源库GitHub上受欢迎的Android UI Library And
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Linux查看进程cpu占用情况

    项目上线后运行一段时间 突然发现cpu 8个逻辑核心都占用100 心情很紧张 然后就在网上找了一些解决方法 具体如下 1 查找哪些进程在耗cpu 进入服务器 top 命令看一下 发现进程6633占用了800 root 3server top
  • g++编译c和c++混合代码的Makefile写法

    在之前的一文章里介绍了多目录Makefile的写法 但是仅针对纯c或者c 代码 而有些时候我们需要混合编译c和c 代码 我们只需要使用g 来编译代码即可 只要我们做两点改动 第一 在引用需要c编译的头文件时 使用关键字extern C 括起
  • KDE桌面没有wifi的解决方案

    ubuntu重装的KDE桌面 但是没有wifi图标 解决方案是 sudo apt get install plasma nm reboot
  • burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法

    如果点击start attrack 后出现 Payload set 1 Invalid number settings 的提示 先点hex 后点 decimal 再开始start attrack 这是一个软件bug 需要手动让它刷新 如果你
  • onenote冲突服务器显示,ONENOTE同步分区失败,显示“正在等待另一个设备完成上载您的笔记”?...

    ONENOTE同步分区失败 显示 正在等待另一个设备完成上载您的笔记 一直在用OneNote 不过之前都没在意分区问题 就是一直添加页面放很多东西进去 问题从昨晚开始出现的 打开OneNote 一如既往用win10自带截图工具截图后复制 在
  • Faster—RCNN配置matlab使用教程

    1 电脑配置 本人电脑的配置 Windows10 64位 MATLAB 2013b CUDA6 5 VS 2013 这里给大家说个小BUG MATLAB2013a是不支持gpuarray的 如果你是2013a的话 会一直报这句错误的 所以
  • 剑指 Offer 57 - II. 和为s的连续正数序列 -—思路和心得

    你在一起 这是一道典型的滑动窗口题目 解题思路就是对于小于target的每一个数都创建一个滑动窗口 通过窗口滑动来进行判断 我的题解 class Solution 思路 滑动窗口解题 1 用变量j代表滑动窗口的结束 2 用变量i从0到tar
  • 位域 (bit-field)

    位域 bit field 也叫位段 所谓 位域 实际上就是把一个字节中的二进位划分为几个不同的区域 并说明每个区域的位数 每个域有一个域名 允许在程序中按域名进行操作 这样就可以把几个不同的对象用一个字节的二进制位域来表示 其主要优点当然就
  • GDI+ 中的一些基础类

    GDI 学习系列 Qt中使用GDI 绘图 背景 GDI 是 Windows 提供的图形设备接口 GDI 的后续版本 相比 GDI GDI 是面向对象的 使用更方便 在 Qt 中也可以使用 GDI 进行绘图 Point GDI 中使用 Poi
  • liunx:pthread_cond_t条件变量pthread_cond_wait、pthread_cond_signal、pthread_cond_broadcast

    liunx pthread cond t条件变量pthread cond wait pthread cond signal pthread cond broadcast 一 pthread cond t条件变量是利用线程间共享的全局变量进行
  • 本科毕设题目推荐系统

    from numpy import import random import numpy as np from sklearn cluster import KMeans import re import matplotlib as mpl