- 博客(246)
- 资源 (3)
- 收藏
- 关注
原创 数据挖掘(七)
利用相似度函数求出每个用户与其他用户之间的相似度,根据相似度进行排序,找出与当前用户最相似的,把他推荐给当前用户。聚类分析另一个复杂之处在于不能用实现标注好的数据进行训练,只好在使用聚类数学模型的基础上求得近似的分组结果,而不是按照用户所希望的那样将数据分成明确的类别。本文根据社交网络用户的好友信息,向他们推荐好友。我们可以通过微博等开发者平台获取社交网络数据,寻找喜欢同一个话题的用户,从中选一部分,再获取这些人的好友列表。有了这些数据后,就能根据两个用户共同拥有的好友数量,计算他们的相似度。
2024-11-03 14:49:08 388
原创 数据挖掘(六)
数据集中每个字典用单词作为键,单词只有在对应的消息中出现,这个单词才会出现在字典里。文本挖掘的一个难点在于歧义。朴素贝叶斯算法在计算用于分类的概率时,为了简化计算假设各个特征之间是相互独立的,稍微扩展就能用于对其他类型数据集进行分类,且不依赖于数值特征。我们使用NLTK抽取单词是否出现作为特征,我们想在流水线中使用NLTK,但是它的接口与转换器接口不一致。我们需要组装分类器,使用朴素贝叶斯算法,数据集只包含二值特征,因此使用专用于二值特征分类的BernoulliNB分类器。加载了95条tweets。
2024-11-03 14:45:17 291
原创 数据挖掘(五)
不是所有数据集都是用特征来表示的,数据集可以使一位作家写的全部书籍,也可以是电影胶片,还可以是馆藏的历史文物。实物的复杂性对目前的算法来说太过复杂,我们可以使用简洁的模型来表示实物。建模过程中需要对真实世界中的对象进行简化,这样会导致信息的丢失,这就是为什么没有一套能够用于任何数据集的通用的数据挖掘方法。我们要关注如何用模型来表示现实,多考虑数据挖掘的目标,而不是轻率地用我们过去用过的特征。数据集可以是用特征来描述的,可以使交易类型的数据,此外还有其他数据集,比如文本、图像、声音、视频甚至是真实的物体。
2024-11-02 09:29:53 652
原创 数据挖掘(四)
从直观上来看,这些数据就像是商店的交易数据,我们可以从中看出哪些商品是顾客一起购买的,应用场景有欺诈检测、顾客区分、软件优化和产品推荐等。比如在电影推荐任务中,我们拿到的是不同用户对不同电影的评价,但每个用户不可能评价过所有电影,如果用户没有评价过一部电影,是因为不喜欢还是出于其他原因还没有评价?本文介绍如何使用亲和性分析方法找出在什么情况下两个对象经常一起出现(购物篮分析),数据挖掘任务的目标是找出对象同时出现的情况,也就是寻找用户同时喜欢几部电影的情况。步骤4:步骤3中是否发现新的频繁项集。
2024-11-02 09:07:18 528
原创 数据挖掘(三)
一棵决策树可以学到很复杂的规则,然后很可能会导致过拟合问题,学到的规则只适用于训练集。比如把决策树的深度限制在三层,只学习从全局角度拆分数据集的最佳规则,不让它学习适用面很窄的特定规则,这些规则会将数据集进一步拆分为更加细致的群组。随机森林算法在内的随机性让人感觉算法的好坏全靠运气,然而通过对多棵几乎是随即创建的决策树的预测结果取均值,就能降低预测结果的不一致性。决策树分类算法的主要优点是决策过程是机器和人都能看懂的,我们使用机器学习到的模型就能完成预测任务,另一个优点是它能处理多种不同类型的特征。
2024-10-27 18:39:47 1022
原创 数据挖掘(二)
scikit-learn库实现了一系列数据挖掘算法,提供通用编程接口、标准化的测试和调参工具,方便用户尝试不同算法对其进行充分测试和查找最有参数值。有大量使用scikit-learn库的算法和工具。
2024-10-27 18:37:08 1013
原创 数据挖掘(一)
数据挖掘旨在让计算机根据已有数据做出决策。决策可以是预测明天的天气、拦截垃圾邮件、检测网站的语言,或者在约会网站上发现新的恋爱对象。数据挖掘方面的应用已经有很多,新的应用也在源源不断地出现。数据挖掘涉及算法、统计学、工程学、最优化理论和计算机科学相关领域的知识。除此之外,我们还会用到语言学、神经科学、城市规划等其他领域的概念或知识。要想充分发挥数据挖掘的威力,通常需要在算法中整合这些属于特定领域的知识。数据挖掘的第一步一般是创建数据集。数据集能够描述真实世界的某一方面。接下来是调整算法。
2024-10-27 18:33:28 1363
原创 深入浅出MongoDB(七)
explain结果将查询计划显示为阶段树,每个阶段都会传递其结果复制到父节点。mongodb提供了一个数据库分析器,可以显示针对数据库的每个操作的性能特征。默认情况下,分析器为off关闭状态,我们可以按数据库或按实例启用分析器并设置分析级别。启用分析功能后,会影响数据库性能和磁盘使用情况。对于索引相交计划,结果将包括AND_SORTED阶段或AND_HASH阶段,以及详细说明索引的inputStages数组。表达式使用索引,那么结果将包括OR阶段和一个详细说明索引的inputStagtes数组。
2024-10-13 21:18:47 1017
原创 深入浅出MongoDB(六)
是一个十六进制字符串,表示查询结构的哈希值,并且仅依赖于查询结构。两个不同的查询结构可能会产生相同的哈希值,但是不同查询结构之间不太可能发生哈希冲突。,它是与查询关联的计划缓存条目键的哈希值,是查询结构和该结构当前可用索引的函数。如果添加或删除可以支持该查询结构的索引,则。为了帮助识别具有相同查询结构的慢速查询,每个查询结构都与一个queryHash相关联。为了更深入地了解查询计划缓存,mongodb推出了。
2024-10-08 09:13:37 1084
原创 深入浅出MongoDB(四)
collection.find()方法会返回一个游标,使用驱动程序或mongosh运行查找操作时,命令会返回一个管理查询结果的游标。查询结果不会以大量文档的形式返回。使用点符号对嵌套字段进行查询,字段和嵌套字段必须放在引号内。我们也可以使用查询运算符、指定与条件等操作。要对嵌套文档的字段指定相等条件,需要使用查询过滤器。以下方法可以把文档插入到集合中,插入操作针对的是单个集合,所有写入操作在单个文档级别都具有原子性。创建或插入操作用于把新文档添加到集合中。如果集合当前不存在,插入操作会创建集合。
2024-10-07 09:09:54 1464
原创 深入浅出MongoDB(三)
复制原理是复制至少需要两个节点,一个主节点处理客户端请求,其余的是从节点复制主节点上的数据。主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证主从数据一致。复制时将数据同步在多个服务器的过程,提供了数据的冗余备份,在多个服务器上存储数据副本,提高了数据的高可用,可以保证数据的安全性,可以从硬件故障和服务中断中恢复数据。副本集的特征是N个节点的集群,任意节点都可以作为主节点,所有写入操作都在主节点上,自动故障转移和恢复。
2024-09-29 09:21:41 1094
原创 深入浅出MongoDB(一)
MongoDB是一个高性能、可扩展、易部署的分布式文档数据库系统。MongoDB由C++语言编写,为web应用提供高性能的数据存储解决方案。它采用分布式文件存储的方式,支持高负载情况下添加更多节点以保证服务器性能。MongoDB的数据模型基于文档和集合的概念。使用BSON作为数据结构,能够以面向对象的方式存储数据,非常适合存储复杂的数据结构比如日志记录、用户信息等。
2024-09-26 18:18:19 924
原创 Spring Cloud Gateway(二)
请求聚合:对于需要聚合多个微服务调用返回一个统一响应的情况,网关可以减少客户端的请求次数和复杂度。负载均衡:通过网关分发请求,可以实现跨多个微服务实例的负载均衡,提升系统的可用性和弹性。缓存:提供响应缓存,减少对后端微服务的请求次数,提升响应速度和减轻后端服务的负载。错误处理和统一的错误返回:在网关层统一处理和格式化微服务可能返回的各种错误响应。监控和日志:集中记录请求日志,提供统计数据,有助于监控API的使用情况和性能。熔断限流:网关可以对流量进行控制,包括请求的限流和熔断,防止系统过载。
2024-08-30 22:33:54 1155
原创 计算机习题(一)
防火墙是一种通过软硬件结合的技术,实现将内部网和公共网络分开的方法,它是一种可以在计算机网络的内外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的技术。在CPU程序执行过程中,由于某一个外部或CPU内部事件的发生,让CPU暂时中止正在执行的程序,转去处理这一事件,当事件处理完毕后回到原来被终止的程序,接着中止前的状态继续向下执行,这个过程就是中断。分块查找既能较快的查找,又能适应动态变化的要求。构造赫夫曼树的时候,每次从节点中取权值最小的两个,构成一棵新的树,直到所有节点都并入同一棵树中。
2024-08-29 23:28:25 921
原创 Spring Cloud Gateway(一)
Spring Cloud Gateway用于在Spring WebFlux或Spring WebMVC之上构建API网关。Spring Cloud Gateway旨在提供一种简单而有效的方式来提供统一的路由访问方式,并为它们提供横切关注点,例如:安全、监控、指标和限流等,基于Netty的响应式开发模式。Gateway的特点基于Spring和Spring Boot构建;能够匹配任何请求属性的路由;断言和过滤器是特定于路由的,重写断言和过滤器很方便;
2024-08-28 15:29:46 1177
原创 Spring Cloud Stream与Kafka(二)
创建自定义绑定接口,定义@Input和@Output时如果没有名称,默认获取当前方法的名称作为绑定名称。应用的时候和其他的绑定接口一样通过@EnableBinding进行声明。@Input@Output应用自定义接口。
2024-08-26 23:53:43 592
原创 Spring Cloud Stream与Kafka(一)
Spring Cloud Stream是由一个中间件中立的核心组成,应用通过Spring Cloud Stream插入的input(相当于消费者)和output(相当于生产者)通道与外界交流。通道通过指定中间件的Binder与外部代理连接,业务开发者不需要关注具体的消息中间件,只需要关注Binder对应程序提供的抽象概念来使用中间件实现业务就可以了。Spring Cloud Stream许多抽象和原语,简化了消息驱动微服务应用程序的开发。
2024-08-26 18:16:42 1351
原创 浅谈Kafka(三)
bin:执行脚本config:配置文件libs:运行所需要的jar包logs:日志文件site-docs:网站的帮助文档。
2024-08-24 13:52:47 1293
原创 浅谈Kafka(二)
在Kafka启动时会在所有的broker中选择一个controller,leader与follower是针对partition,而controller是针对broker的。创建主题、添加分区、修改副本数量之类的管理任务都是由controller来完成的。Kafka分区leader的选举也是由controller决定的。controller选举流程,在集群启动时每个broker都会尝试去zookeeper上注册成为controller(临时节点)。
2024-08-23 09:54:07 975
原创 浅谈Kafka(一)
数据传输的事务定义通常有最多一次、至少一次、精确的一次三种。最多一次是消息不会被重复发送,最多被传输一次,但也可能一次都不传输。至少一次是消息不会被漏发,至少被传输一次,但也可能会被重复传输。精确的一次是不会漏发也不会重复传输,每个消息都被传输一次。
2024-08-22 22:56:07 1237
原创 statsmodels学习笔记
statsmodes支持使用R风格的公式和pandasdataframe指定模型。# 生成人工数据(2个回归量+常数)nobs = 100# 拟合回归模型# 检查结果。
2024-08-22 08:25:21 214
原创 浅谈Redis(二)
当Redis的主从服务启动后,首先进行全同步。master收到一个操作判断是否需要同步到slave,如果需要同步则将操作记录到AOF文件中,遍历所有的slave,把操作的指令和参数写入到slave的恢复缓存中,一旦slave对应的socket发送缓存中有空间写入数据,就把数据通过socket发送出去。当采用哨兵模式时,客户端不需要直接连接Redis,而是连接哨兵的IP和port,由哨兵来提供具体的可提供服务的Redis实现,这样当master节点挂掉后,哨兵就会感知并将新的master节点提供给使用者。
2024-08-21 10:02:45 929
原创 浅谈Redis(一)
Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,比如string、hash、list、set及sorted set等。无论是本地缓存还是分布式缓存,为了保证高性能,都采用内存保存数据,由于成本和内存限制,当存储的数据超过缓存容量时,需要对缓存的数据进行剔除。
2024-08-20 23:49:49 1121
原创 MySQL面试问题(三)
它主要由隐藏字段trx_id当前事务ID、roll_pointer回滚指针,undo log日志,read-view来配合完成的,是一种乐观锁实现。根据事务的开始事件不同,意味着在同一个时刻不同事务看到的相同表里的数据可能是不同的。redo log用来记录某数据块被修改后的值,可以用来恢复未写入数据文件的已成功事务更新的数据;undo log是用来记录数据更新前的值,保证数据更新失败能够回滚。MySQL三大日志包括binlog、redo log、undo log。
2024-08-20 10:49:44 466
原创 MySQL面试问题(二)
聚簇索引是按照表的主键构造一棵B+树,同时叶子节点存放的就是行记录数据,聚簇索引的叶子节点也称为数据页。这个特性决定了索引组织表中数据也是索引的一部分。由于聚簇索引的索引页面指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要相当于该表120%的附加空间来存储该表的副本和索引中间页。
2024-08-19 21:52:57 1156
原创 浅谈JSP及实战
写JSP就像是在写html,JSP允许在页面中嵌入java代码,并且可以在页面中获取request、response等web对象,实现与浏览器的交互。pageContext对象代表JSP页面的运行环境,封装了对其他隐式对象的引用,还是一个域对象可以用来保存数据。的区别是前者中调用了后者,当数据为空时,前者可以输出空,后者什么也不输出。JSP页面中的html内容称为JSP模板元素,模板元素定义了网页的基本骨架,即页面的结构和外观。JSP页面包含模板元素、表达式、脚本片段、声明、注释、指令、标签、内置对象。
2024-08-19 20:57:13 915
原创 Elasticsearch简述
Elasticsearch简述Elasticsearch产品介绍Elasticsearch是一个基于Apache Lucene的开源的分布式搜索和分析引擎,设计用于云计算中,能够快速处理大量数据。它能够近实时地进行复杂的查询,并且可以用于全文检索、结构化搜索以及分析。Elasticsearch具有以下特性:分布式搜索引擎,可以扩展到上百台服务器,处理PB级的数据。RESTFUL API,使用JSON进行数据交换。实时分析,可以对数据进行实时分析。高可用性,节点失败时可以自动重分配。近实时,
2024-08-18 18:14:38 1123
原创 红黑树及java实现
红黑树RBT是特殊的二叉树,满足二叉查找树的特征:任意一个节点所包含的键值大于等于左子节点的键值,小于等于右子节点的键值。== 原始数据: 10 40 30 60 90 70 20 50 80。== 前序遍历: 30 10 20 60 40 50 80 70 90。== 中序遍历: 10 20 30 40 50 60 70 80 90。== 后序遍历: 20 10 50 40 70 90 80 60 30。== 最小值: 10。== 最大值: 90。
2024-08-15 23:25:18 166
原创 mysql事务
脏读是一个事务读取到另一个事务的提交数据,不可重复读是指两次读取的数据是不一致的,幻读是指当事务不是独立执行时发生的一种现象。Serializable可以避免脏读、不可重复读和幻读,Repeatable Read可以避免脏读、不可重复读,Read Committed可以避免脏读情况,Read Uncommitted以上情况都不能避免。原子性是指事务是一个不可分割的单元,事务操作要么都成功,要么都不成功。隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务干扰。
2024-08-14 22:14:28 421
原创 合并两个有序数组
(2)方法2:使用双指针方法,把两个数组看成队列,每次从两个数组头部取出比较小的数字放到结果中。非递减顺序表明数组已经排序过。(1)方法1:直接把nums2的数据添加到nums1中,然后进行一次升序排序。
2024-08-02 09:33:07 411
原创 java解决全排列问题
给定一个可包含重复数字的序列 nums ,按任意顺序返回所有不重复的全排列。我们把问题看成n个排列成一行的空格,从左往右依次填入给定的n个数,每个数只能使用一次,可以使用回溯法。递归函数backtrack(idx, perm)表示当前排列为perm,下一个待填入的位置是第idx个位置,下标从0开始。(1)如果idx == n,说明填完了n个位置,找到了一个可行解,把perm放入结果数组中,递归结束;(2)如果idx < n,需要考虑第idx个位置填那个数。
2024-07-28 19:46:20 540
原创 Spring Bean生命周期
(3)初始化:如果Bean实现了BeanNameAware、BeanFactoryAware等接口,会调用相应的方法。然后,如果注册了BeanPostProcessor,调用相应的postProcessBeforeInitialization方法。如果使用了init-method属性声明了初始化方法,也会被调用。(5)销毁:当容器关闭时,如果实现了DisposableBean接口,调用destroy方法;如果使用了destroy-method属性声明了销毁方法,也会被调用。
2024-07-28 10:34:59 275
原创 Top K问题及解决
Top K问题:在大规模数据处理中,经常会需要在海量数据中找出频率最高的前K个数。比如,在搜索引擎中,统计搜索最热门的10个查询词等。针对Top K类问题,可以使用分治算法+Trie树/hash + 小/大顶堆,事先把数据集按照Hash方法分解成多个小数据集,然后使用Trie树或者Hash统计每个小数据集中查询词的频率,之后用小/大顶堆求出每个数据集中出现频率最高的前K个数,最后在所有Top K中求出最终的Top K。
2024-07-24 23:20:09 379
原创 CyclicBarrier循环栅栏介绍和使用
CyclicBarrier需要等待指定的个数的线程都调用了await方法后同步执行。可以让一组线程等待至某个状态之后同步执行,当所有等待线程都被释放以后,
2024-07-20 21:24:24 228
原创 Java读写锁的简单应用
线程t1、t2分别使用读锁和写锁,设置t1线程先执行100毫秒,先获取读锁,然后读取到数据为10,读锁释放后才会获得写锁,写入数据15。读写锁存在“写饥饿”问题,在写的时候是独占模式,其他线程不能读写,如果有大量的读操作的话,那些线程也只能够等待。2024-07-14 12:47:49 [t2] c.dataContainer - 写入数据:15。读锁是共享锁,写锁是独占锁,读锁可以同时被多个线程持有,而写锁最多只能有一个线程持有。
2024-07-14 13:01:08 281
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人