- 博客(230)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 机器学习入门,无监督学习之DBSCAN聚类算法完全指南:面向Java开发者的Python实现详解
本文介绍了DBSCAN聚类算法的核心概念、实现原理及Python实现。DBSCAN是一种基于密度的聚类算法,相比K-Means具有无需预设簇数、能识别任意形状簇和噪声点等优势。文章通过Java类比解释了核心概念(如核心点、边界点等),详细讲解了算法步骤,并提供了完整的Python实现代码,包括自定义DBSCAN类和可视化示例。该实现采用广度优先搜索策略扩展簇,适合Java开发者理解Python实现方式。
2025-10-15 20:52:12
611
原创 机器学习入门,无监督学习之K-Means聚类算法完全指南:面向Java开发者的Python实现详解
本文为Java开发者提供了K-Means聚类算法的Python实现指南。文章首先通过对照表将Java概念映射到Python语法,帮助开发者快速上手。然后详细讲解了K-Means算法的核心思想,将其类比为"将彩色球分到K个篮子"的过程。完整代码实现包括数据生成、算法核心和可视化模块,特别对Python的向量化操作与Java循环进行了对比说明。文章还介绍了如何使用sklearn库的KMeans实现以及如何评估聚类效果,最后提供了算法优缺点的分析。通过这种针对Java开发者的视角,帮助读者理解
2025-10-15 20:40:48
901
原创 AIGC入门,手搓大模型客户端与MCP交互第2集
本文针对大语言模型(LLM)与MCP服务交互过程中出现的JSON格式不规范问题,提出了一套鲁棒的参数提取方案。原系统假设模型总是返回完美JSON,但实际响应常包含多余文本、注释或格式错误,导致解析失败。改进方案通过两个核心函数:extract_json_from_response()使用正则表达式清除注释并采用多层解析策略,validate_tool_call()验证JSON结构完整性。该方案显著提升了工具调用的成功率,代码演示了如何从杂乱响应中提取有效JSON并进行验证。
2025-10-09 17:57:36
319
原创 Git高级操作:提升开发效率的实用别名设置
本文分享了一系列优化Git工作流的实用配置和别名设置。通过禁用分页器、强制彩色输出、设置严格时间格式等基础配置,提升操作体验。同时提供了st(status)、co(checkout)等常用命令的简化别名,以及loggg、logg等高级日志格式化工具,使输出更清晰易读。这些设置能显著减少日常命令输入量,建议根据个人习惯调整后加入全局配置。文末附完整脚本可直接复制到~/.bashrc使用。
2025-10-09 17:13:45
361
原创 用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)
本文档详细介绍了软考真经微信小程序的API接口规范,主要包含三个环境配置和三类核心接口:认证接口(微信登录、用户信息)、考试接口(开始/结束考试、题目/错题列表、提交答案)和统计接口。所有请求需携带认证token,遵循标准HTTP状态码规范。小程序为软考考生提供在线考试、错题练习和学习数据统计功能,通过REST API实现前后端交互。文档还提供了典型接口调用示例,如考试流程管理和答题提交等核心场景的实现方式。
2025-10-08 18:00:10
672
原创 用AI帮忙,开发刷题小程序:微信小程序中实现Markdown图片解析与渲染功能详解
本文介绍了在微信小程序中实现Markdown图片解析与渲染功能的技术方案。通过创建工具函数解析包含Markdown图片的文本内容,将其转换为混合数组,并在WXML模板中循环渲染,实现了图文混排效果。该方法保持了内容的原始顺序和语义连贯性,适用于在线考试系统等需要展示图文内容的场景。文章详细说明了核心实现步骤,包括工具函数编写、组件逻辑修改、模板调整和样式优化,并提供了项目源码地址供参考。
2025-10-08 17:39:53
818
原创 用AI帮忙,开发刷题小程序:从零开始,构建微信小程序答题系统
《微信小程序答题系统开发实践》摘要:本文详细介绍了从零开发微信小程序答题系统的全过程。项目采用标准的微信小程序架构,通过组件化设计和TypeScript类型定义确保代码质量。核心功能包括题目数据模型设计、答题流程控制、记录管理机制等,并实现了流畅的滑动切换和实时反馈交互。系统采用API封装和异步加载优化网络请求,最后通过代码优化和全面测试完成部署。项目展现了小程序开发的全流程实践,源码已开源并提供体验二维码。
2025-10-06 19:01:16
2454
3
原创 用AI帮忙,开发刷题小程序:微信小程序在线答题系统架构解析
本项目开发了一个基于微信小程序的在线答题系统,采用原生小程序框架实现组件化开发。系统包含首页导航、答题、学习和记录四大功能模块,通过标准化的exam-question组件统一题目展示,并利用工具类封装核心逻辑。技术亮点包括流畅的交互体验、清晰的数据流设计和组件复用机制。目前系统已实现基本答题功能,支持题目展示、作答验证和结果统计,后续可扩展更多题型和数据分析功能。项目代码已开源,便于开发者参考和学习微信小程序开发实践。
2025-10-06 16:46:32
1338
原创 用AI帮忙,开发刷题小程序,在线答题系统数据库设计文档
本文档描述了在线答题系统的核心数据库设计,包含7个主要数据表: 题目表(question)存储题目基本信息 选项表(question_option)记录题目选项 试卷表(exam_paper)管理试卷信息 试卷题目关联表(exam_paper_question)建立试卷与题目关系 试卷分类表(exam_paper_category)组织试卷分类结构 用户考试记录表(user_exam_record)记录考试整体情况 用户答题详情表(user_answer_detail)记录每题答题详情 每个表包含详细的字段
2025-10-06 11:05:54
832
原创 AIGC入门,手搓大模型客户端与MCP交互
本文介绍了一个基于MCP协议和Ollama本地大模型的智能时间查询系统。该系统由两部分组成:时间服务器(time_server.py)提供获取当前时间和列出时区的工具函数;客户端(time_client_test3.py)利用Ollama模型分析用户查询并智能调用时间服务。时间服务器实现了完整的时区处理和错误提示功能,通过MCP协议暴露工具接口。客户端采用异步连接管理和多重策略解析模型响应,能够智能判断是否需要调用时间服务工具。这种架构展示了如何将大语言模型与专用工具服务相结合,构建既能理解自然语言又能精准
2025-09-16 21:36:01
672
原创 AIGC入门,从理解通信协议sse与streamhttp开始
随着AIGC(生成式人工智能)的普及,大模型如GPT、通义千问等已广泛应用于对话、代码生成、数据分析等场景。这些模型在运行时需要与客户端进行高效通信,SSE(Server-Sent Events) 和 Stream HTTP(流式HTTP) 是两种核心通信协议。本文将结合理论和Java代码示例,帮助你理解这两种协议的原理、区别及在AIGC中的实际应用。
2025-09-16 21:21:30
983
原创 AIGC入门,程序员的第一个MCP例子
本文展示了一个基于MCP协议的时间查询服务器示例。该Python脚本提供了四个主要功能:1)获取指定时区的当前时间并可自定义格式;2)查询特定时区的详细信息;3)列出常用时区可按地区过滤;4)计算两个时区之间的时间差。服务器通过标准输入/输出(stdio)方式运行,使用pytz库处理时区转换,并提供了清晰的错误处理机制。每个功能都定义了输入参数模式,支持默认值设置,确保接口的易用性。
2025-09-14 17:16:34
765
原创 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
本文介绍了在macOS上使用Lima免费搭建Docker环境的完整方案,解决了Docker收费和镜像访问难题。主要内容包括:通过Homebrew安装Lima工具;使用官方模板或自定义配置启动Docker实例;配置Shell环境变量实现通信;以及验证安装的测试方法。该方法比Docker Desktop更轻量且完全免费,特别适合因公司政策无法使用Docker桌面版的用户。文章还提供了详细的配置示例和关键步骤说明,确保用户能顺利完成安装并运行测试容器。最后附上了相关技术文章的扩展阅读链接。
2025-09-05 17:33:13
721
原创 机器学习入门,第一个MCP示例
本文介绍了MCP(Model Context Protocol)协议及其应用。MCP作为Anthropic提出的开放协议,为AI大模型提供了连接外部资源的标准接口。文章通过六个步骤详细演示了如何搭建MCP服务:首先安装必要组件,然后创建文件管理工具的MCP服务器脚本,接着配置Open-WebUI连接MCP服务,最后进行测试验证。示例代码展示了如何实现列出桌面文件和读取文件信息的功能,并提供了调试建议。该方案使大模型能够直接操作用户本地数据,扩展了AI的实际应用能力。
2025-09-04 21:28:26
1343
原创 机器学习进阶,梯度提升机(GBM)与XGBoost
XGBoost是当前结构化数据竞赛和工业应用中强大的集成学习算法,相比随机森林(Bagging思想)采用Boosting方式串行构建模型,通过纠正前序模型错误提升性能。本文通过鸢尾花分类任务对比两种算法,提供完整Python实现:1)数据加载与预处理;2)训练随机森林和XGBoost模型;3)评估准确率与交叉验证比较;4)可视化特征重要性。XGBoost优势包括:state-of-the-art性能、高效可扩展、内置正则化防过拟合,特别适合表格数据。代码模块化实现包含早停法等高级功能,显示XGBoost测试
2025-09-04 17:01:25
977
原创 机器学习进阶,一文搞定模型选型!
如何选择适合的机器学习算法?关键步骤包括:1)明确业务目标与评估标准;2)确定问题类型(回归/分类/聚类);3)分析数据特性(规模、线性、特征等);4)从简单模型开始(如线性回归/逻辑回归);5)逐步尝试强效算法(如随机森林/XGBoost);6)通过交叉验证快速迭代验证。核心原则是:没有"最优"算法,只有最适合具体问题和数据特点的解决方案。建议优先考虑随机森林/XGBoost等对表格数据处理效果好的算法,再根据实际效果调整。最终选择需结合业务需求和实验结果。
2025-09-03 17:57:04
1151
原创 机器学习入门,随机森林算法
随机森林算法是一种集成学习方法,通过构建多棵决策树并采用投票或平均机制来提高预测性能。其核心在于Bagging思想,使用Bootstrap抽样生成多个训练子集,并在节点分裂时随机选择特征子集以增强模型多样性。该算法具有抗过拟合、处理高维数据和评估特征重要性等优势。文中提供了完整的Python实现示例,包括数据加载、EDA分析、模型训练和评估流程,使用鸢尾花数据集展示了随机森林分类器的应用。
2025-09-03 17:34:33
1019
原创 机器学习入门,支持向量机
本文介绍了支持向量机(SVM)在客户信用评分中的应用。SVM通过寻找最优超平面来分隔不同类别数据,最大化边界距离。在银行信用评估场景中,可基于客户收入和负债数据,使用线性核SVM进行高风险/低风险分类。文章提供了一个模块化Python实现,包含数据生成、模型训练、评估和可视化功能,并解释了准确率计算公式。该方案适用于小样本线性可分数据,准确率达100%,支持向量在图中被明确标出。代码采用函数式设计,便于复用和扩展。
2025-09-02 17:03:43
513
原创 机器学习入门,决策树模型详解及完整实现
决策树是一种基于树结构的预测模型,通过一系列"如果...那么..."规则进行决策。它包含根节点、内部节点和叶节点三种节点类型,使用信息增益、基尼不纯度等准则选择最佳分裂点。本文以房价预测为例,展示了如何根据位置、面积等特征构建决策树,并提供了Python实现代码,包括节点分裂、递归建树和预测功能。该简化模型可处理回归问题,通过计算均方误差寻找最佳分裂,支持限制最大深度等停止条件,最终输出易解释的树形结构。
2025-09-02 12:59:01
618
原创 机器学习入门,非线性模型的预测方法之多项式
本文展示了一个带L2正则化的多项式回归模型实现。代码包含数据生成、特征转换、损失计算、梯度下降优化和模型评估等功能模块。主要特点包括:1)生成二次多项式样本数据并添加噪声;2)实现多项式特征转换;3)采用L2正则化防止过拟合;4)使用梯度下降优化算法;5)提供模型评估指标(MSE、RMSE、R²等)和可视化功能。该实现可灵活调整多项式次数,适用于非线性数据的回归分析。
2025-09-01 17:36:09
1312
原创 机器学习入门,非线性规划类模型如何预测
摘要:本文分析了线性模型预测中使用点积的局限性,指出其仅适用于线性关系。针对非线性问题,介绍了多项式回归、神经网络、树模型和支持向量机等预测方法,并提供了各方法的Python实现示例。文章建议从简单线性模型开始,通过可视化分析和交叉验证逐步选择合适模型,同时考虑计算成本。最后强调应根据数据特性和业务需求选择最优预测方法。
2025-08-29 13:16:44
330
原创 机器学习入门,从线性规划开始
本文介绍了机器学习中几个核心数学概念及其实现方法。首先解释了矩阵点积的计算原理,包括不同维度矩阵的点积示例。其次详细说明了偏置项的作用及其代码实现方式,通过添加全1列实现模型截距。重点讲解了梯度下降算法,通过线性回归实例演示参数更新过程,展示如何逐步逼近最优解。最后介绍了回归模型的性能评估指标:MSE、RMSE和MAE,分别解释了它们的计算公式、数学意义及评价标准。这些基础概念为理解机器学习算法提供了必要的数学基础。
2025-08-29 12:11:11
694
原创 自己动手,在Mac开发机上利用ollama部署一款轻量级的大模型Phi-3:mini
Ollama是一个开源的大语言模型运行框架,支持在本地计算机上部署和管理各种LLM。本文介绍了在Mac上通过Docker安装Ollama的详细步骤,包括:1)使用Docker运行Ollama容器;2)进入容器并下载轻量级模型(推荐phi3:mini或llama3.2:1b);3)通过命令行或API与模型交互;4)可选安装Open-WebUI图形界面。文章还提供了常见问题解决方案(如内存不足错误)和常用命令参考,帮助用户快速上手使用Ollama运行本地大语言模型。
2025-08-21 21:32:54
1013
原创 用AI帮忙,开发刷题小程序:一位后端老兵的跨界挑战
【摘要】服务端程序员挑战微信小程序开发,推出开源在线答题项目"ruankao"。该项目定位知识刷题平台,帮助用户掌握专业技能。开发者虽无小程序经验,但坚持每周在优快云更新开发文档(https://blog.youkuaiyun.com/hl_java/category_12999666.html),并将代码开源至Gitee(https://gitee.com/alioo/ruankao)。项目包含题库管理、答题统计等功能界面(如图),诚邀开发者共同参与。
2025-08-16 13:00:13
187
原创 LogUtil日志工具类你真的封装对了么?
摘要:本文介绍了一个优化的Java日志工具类LogUtil,解决了SLF4J封装Logger时丢失调用类名和行号的问题。方案通过分析调用栈定位实际调用者,使用双重缓存提升性能,并支持LocationAwareLogger获取精确位置。优化版本LogUtil2进一步改进:限制栈遍历深度、减少类型检查、添加Lambda支持、统一日志接口和优化缓存结构,适合高并发场景。示例显示日志能正确输出类名、行号及异常堆栈,方便调试。
2025-07-14 21:04:16
356
原创 软考学习考证的心路历程
摘要: 作者分享了自己三年备考软考高级信息系统项目管理师(高项)的经历与经验。2023年首次因轻视考试(误以为与PMP相似)而三科全挂;2024年第二次备考虽案例题通过,但论文和选择题未达标,反思项目案例术语晦涩且知识点覆盖不均衡;2025年调整策略,提前备考、更换课程并请假冲刺,最终通过考试。总结建议:不可轻信“简单”传言,需投入3个月每天1-2小时学习,警惕官方卡通过率,报班提升效率,并保持心态。全文强调扎实准备与持续改进的重要性。(150字)
2025-07-05 16:11:18
547
原创 Git基础操作:将多个commitid合并成1个
有时候我们回头看之前提交的commitid会发现有些随意,打算整理一下,我们要将最近的几次commit合并成一个commit,可以使用git rebase的交互模式(interactive rebase)来实现。
2025-06-25 16:03:20
815
原创 分布式事务-tcc( 与 2PC 的对比与代码示例)
/ === 订单服务 ===@Service// 幂等检查:防止重复Try// 绑定全局事务ID// 幂等处理// 可能Try未执行// === 库存服务 ===@Service// 幂等检查// 冻结库存(实际库存不变)// 幂等// 实际扣减库存并解冻// 解冻库存// === 支付服务 ===@Service// 预授权资金(冻结金额)// 实际扣款// 释放预授权。
2025-03-13 14:01:35
1156
原创 分布式事务-2pc
分布式事务是指涉及多个独立资源(如数据库、消息队列、缓存等)的事务操作,需要保证所有资源要么全部提交成功,要么全部回滚,以确保数据的一致性。准备阶段(Prepare Phase):● 协调者询问所有参与者是否可以提交事务。● 参与者执行事务操作,并返回准备结果(成功或失败)。提交阶段(Commit Phase):● 如果所有参与者都准备成功,协调者发送提交请求。● 如果任一参与者准备失败,协调者发送回滚请求。2PC 是分布式事务的基础协议,通过准备和提交两个阶段保证事务的原子性。
2025-03-13 09:51:22
427
原创 持续迭代,做一个可以投入项目真正使用的业务容器及插件
上一篇文章中已经可以允许插件中有自己的依赖jar包了(原理就是插件中依赖jar包交给插件专属的插件类加载器PluginClassLoader进行加载,业务系统中依赖的jar包交由业务类加载器AliooClassLoader进行加载)大家知道java中是尽可能面向对象编程的,如果请求插件中的功能类方法返回值类型是一些常见的3方jar,比如com.alibaba.fastjson.JSONObject,按照之前的设计会存在2种情况:业务系统中没有依赖fastjson业务系统中也依赖fastjson。
2024-12-07 16:11:45
890
原创 再接再厉,让插件真的像个正儿八经的插件
将插件绑定到package阶段,当执行mvn package时会自动触发此插件的运行try {//创建plugin.propertiesif (!continue;//如果依赖的jar包是system类型,则直接将依赖的jar包添加到fatJar中的lib目录下// 创建 classes 目录条目// 创建 lib 目录条目//采用json的风格,输出入参对象的各个属性。
2024-12-01 21:11:11
401
原创 Git基础操作:git tag 相关命令举例讲解
git tag 是 Git 中用于给某个特定的提交创建标签的命令。标签通常用于标识重要的时刻,比如发布版本。与分支不同,标签是静态的,它们指向一个特定的提交。当你想要标记某个重要的状态,以便将来可以轻松地找到或引用它时,标签会非常有用。默认情况下,标签不会自动推送到远程仓库。你需要显式地推送它们。
2024-11-27 15:30:58
219
原创 小有所成,总算搞懂了类加载器
/自定义一个classloader@Overridetry {is.read(b);//此处结果为 myClass:class com.alioo.classloader.v1.CustomClassLoaderTest//此处结果为 systemClassLoader:jdk.internal.loader.ClassLoaders$AppClassLoader@512ddf17//此处值为:false。
2024-11-25 12:09:08
560
原创 jstack结果提取特定线程池线程的堆栈
这里假设你已经知道如何定位java进程PID,以及如何执行jstack命令进行导出,下面仅提供相关命令,及示例。
2024-08-20 15:07:51
375
1
原创 Git基础操作:git stash 相关命令举例讲解
git stash 是 Git 提供的一个强大的工具,它允许你临时保存(或“暂存”)当前工作目录和索引(暂存区)的改动,从而可以切换分支或执行其他操作而不影响当前的工作状态。
2024-01-11 10:00:30
903
原创 “程序员35岁危机”,程序员危机的核心原因是年龄吗?
这篇文章讨论了程序员在当前时代面临的危机,主要源于年龄与技能的匹配问题。作者认为,35岁是一个重要的年龄节点,许多程序员在这个年龄段会感到焦虑,因为他们的工作经验似乎没有与之相匹配的增长。文章分析了个人焦虑的原因,包括自身年龄和圈子的影响,以及收入增长率放缓的恐慌。作者提到,个人收入增长率放缓可能是个人因素和外部环境因素的结果。外部环境因素包括程序员供给增多和市场需求减少,而程序员的供给已经过饱和,市场需求也开始下降。
2024-01-03 23:30:49
1478
原创 Git基础操作:合并某个分支的一个目录到另一个分支
有的时候不小心在错误的分支A上开发了一点代码,也已经提交了;或者分支A原计划先上线的,但是业务调整需要插一个需求进来,但是插进来的需求中有一部分代码在分支A中已经写过了。
2023-11-27 14:34:28
730
原创 利用ssh端口转发
localhost:80 是目标地址和端口,这里的 localhost 是相对于SSH服务器来说的,所以 localhost:80 表示SSH服务器上的80端口。这个命令是利用了ssh的端口转发功能,SSH 命令的 -L 选项可以创建一个在本地机器上的端口转发,可以把本地的一个端口的流量转发到远程的一个端口。你的本地机器IP是192.168.1.100,你有一个远程服务器,假设IP是 203.0.113.0,上面运行了一个web服务在 80 端口。8080 是你本地机器上监听的端口。
2023-11-20 23:42:55
1034
原创 Git常见问题:git pull 和 git pull --rebase二者区别
总之,git pull 和 git pull --rebase 都可以将远程的更改合并到本地分支,但它们的合并方式不同。这意味着,如果在本地和远程分支上有新的提交,git pull 会创建一个新的提交(称为 “merge commit”),该提交将两个分支的历史合并在一起。由于这样的合并方式,你的 Git 提交历史可能会变得非线性,包含许多分叉和合并。git rebase:将本地分支上的提交 “重放”(重新应用)在远程分支上,而不是创建一个新的合并提交。这可以使你的提交历史保持线性,不包含分叉和合并。
2023-09-04 17:44:39
4036
Servlet 中文乱码问题
2014-10-20
CMPP2.0 CMPP3.0 接口协议
2014-10-20
java中获取HashMap中的table?
2017-05-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅