热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据挖掘第一次尝试(致即将逝世的研一)

最近参加阿里大数据比赛,大致是给了4个月数据,包括用户的四种行为(点击、购买、收藏、加购物车),来预测第五个月用户的购买情况,主要用precision(准确率)和recall(

         最近参加阿里大数据比赛,大致是给了4个月数据,包括用户的四种行为(点击、购买、收藏、加购物车),来预测第五个月用户的购买情况,主要用precision(准确率)和recall(召回率),最后用F1来拟合二者。很可惜,没有作出任何成果,可能是因为参赛太晚,可能是对于数据挖掘没有经验,更可能是面对大数据不会处理(其实也不能算大数据,就18000多条记录),我不是一个喜欢找借口做事情的人,不过,总之没有处理数据的经验。

        当知道要开始做数据处理的时候,第一反应就是把数据把数据导入到数据库,因为有sql语句做支撑,处理数据会很方便。后来才知道,一开始就错了,对于大数据的处理,简单的操作还行,复杂一点就会变的很慢,慢得让人受不了。(记得计算两个物品得相似性的时候,我还是在服务器上去配了环境,虽说服务器不算太牛逼,也要跑十天左右,8分钟计算1万次)所以,以后一定要记住这个。相反,matlab的计算能力毋庸置疑,所以有时间一定要多研究matlab。当然,也可以理解成自己的算法不够高效,那么,总而言之,能力不足

       这次的推荐系统,准备用CF(Colaborative Filtering)算法,具体分为UserCF和itemCF。不过,确实总感觉itemCF的各种要比前者有优势,所以采用了这种方式,可是谁知道就在第一步,求物品的相似矩阵就算了很多天,而且还没有用最优化的算法,然后时间就要截至了。主要参考的是《推荐系统实践》,后面会附上itemCF的相似度计算,转载人家的。在这次比赛中还学到了,怎么用python处理大文件,就是file.readlines(buffsize),就是设置一个大小缓冲区,一次只读那么一些数据。

      以后肯定会有很多data analyze的机会,一定要try best,避免这次毫无成果

以下是转载http://www.taobaotest.com/blogs/2447,供以后学习

个性化推荐算法及算法测试方法系列分享(一)--itemCF算法介绍

minyi 发表于:2013-07-04 浏览:64次 评论: 0次 所属分类: 测试理论

      随着大数据的广泛应用,淘宝个性化的业务场景越来越多,数据应用测试团队将通过三次博客为大家分享以下内容:

      <一>基于物品的协同过滤itemCF算法介绍

      <二>mapreduce开发入门--基于MR的itemCF算法开发

      <三>itemCF算法测试方法和测试过程

基于物品的协同过滤itemCF算法介绍

      随着互联网上信息资源的爆炸性增长,用户从互联网上获取自己感兴趣资源的难度也相应的增加。如何针对不同用户挖掘互联网上用户可能的感兴趣信息成了一个研究热点,从而个性化推荐系统应运而生。基于物品的协同过滤(item-basedcollaborative filtering)算法是目前业界应用最多的算法。无论是亚马逊网、HULU网、YouTube,其推荐算法的基础都是该算法。

基于物品的协同过滤算法主要分为两步。

1.        计算物品之间的相似度。

2.        根据物品的相似度和用户的历史行为给用户生成推荐列表。

公式演变:

公式A:wij=

分母|N(i)|是喜欢物品i的用户数,分子|N(i) (j)|是同时喜欢物品i和物品j的用户数。

缺点:如果物品j很热门,很多人喜欢,那么  wij 就会很大,接近1。因此,该公式会造成任何物品和热门物品的相似度都有很大的相似度。为了避免推荐出热门物品的问题。优化出公式B(见图1)。

公式B:wij=

缺点:假如,有一个非常活跃的用户买了非常多的书,但是并非出于自身的兴趣,而且这些书覆盖率当当网的很多领域,学者认为活跃用户对物品相似度的贡献应该小于不活跃的用户,应该对活跃用户做软性的惩罚。提出了公式C。

公式C:wij=

N(u)是用户喜欢的物品集合。



推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • Python 数据分析领域不仅拥有高质量的开发环境,还提供了众多功能强大的第三方库。本文将介绍六个关键步骤,帮助读者掌握 Python 数据分析的核心技能,并深入探讨六款虽不广为人知但却极具潜力的数据处理库,如 Pandas 的替代品和新兴的可视化工具,助力数据科学家和分析师提升工作效率。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 如何有效防御网站中的SQL注入攻击
    本期文章将深入探讨网站如何有效防御SQL注入攻击。我们将从技术层面详细解析防范措施,并结合实际案例进行阐述,旨在帮助读者全面了解并掌握有效的防护策略。希望本文能为您的网络安全提供有益参考。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
author-avatar
浩劫19_439
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有