自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 收藏
  • 关注

原创 工程经验--如何看懂一个已落地的工程项目(1)

相信很多人在刚入职或者想丰富自己的简历时,都会遇到要独立看懂一个完整项目的经历。有时候,我们会拿到项目的说明README,这固然好,但是,如果从初学者或者新手的角度出发,其实还是尽量不依赖README,先独立看懂、跑通一个项目,这样既可以了解整个流程,也能吸收很多知识,同时在了解的过程中,去外部通过工具搜索概念、操作这些可以帮助我们打下坚固的基础。这其实很不简单,因为不仅考究代码能力,一定程度上还算是考究我们的见识面,下面我们就以看懂一个用Go来写的一个工程项目为例来展开。

2026-03-31 01:21:17 144

原创 数据科学每日总结--Day55--大数据分析

比如说,连锁店要分析各个门店的销售量,ETL的流程便是:首先,凌晨从全国数千家分店的本地POS系统抽取前一天的销售流水,统一商品编码,并过滤掉测试单、退货单;:将结果应用到实际业务中,并持续监控迭代 以网约车平台为例,一个完整的生命周期就是:提前调度车辆到高需求区,减少乘客等待→历史订单、天气、节假日、演唱会信息→将时间、地点、天气等数据整理成统一格式的表格→使用时间序列算法训练预测模型→用上周的实际数据测试,误差在可接受范围→模型上线,每小时自动输出预测热力图,调度系统据此派车。:清洗、整合、格式化。

2026-03-30 00:58:09 210

原创 每日一个工程经验分享--获取授权与传感器数据获取

而通过微信授权则简单的多,只需向平台申请code,便可用code在后端向微信平台发起申请,获取微信用户的openid(唯一),进而去后端数据库对应user_id,这样便省去了额外的建库。但实际上,通过原生传感器包,直接拿传感器计的数据,这样数据既稳定,同时还能在允许范围内,设置间隔来固定数据点的获取频率,从而适配后端算法对数据点的需求。我们在获取手机内置传感器数据时,为了保证数据的实时性,传统的方法是通过DOM事件,来定位获取传感器数据,但这样拿数据需要用系统与浏览器调度。

2026-03-30 00:52:11 4

原创 数据科学每日总结--Day54--图模型

优点:与传统的相比,如果面对一张图,其在处理过程中,像素出现了些许偏移,那么图片就变成了不可识别的事物,但是在图模型的方法理论里,没有结构排列的说法,周围的节点可以相当于一个集合,即便出现些许偏差,也依然可以识别。对动态图与异质图的处理复杂:现实中的图是变化的(如社交网络每天都有新用户和新关注),如何让模型在不重新训练全图的情况下适应新节点(归纳学习),是一个复杂的工程问题;电商与推荐系统:可以通过“消息传递”机制,让用户节点聚合其购买过的商品节点的特征,同时商品节点也能聚合购买过它的用户节点的特征。

2026-03-29 00:53:36 177

原创 数据科学每日总结--Day53--UCS与BFS

原理:按距离起点的边数分层推进,意思是,按照步骤节点一步一步地向下走,且一定要走完当前节点才会往下走(这是为了防止错过的节点刚好下一步就是目标节点的可能),可以简单理解为按部就班地按照固定步骤手册走完流程的方法,虽然可能会慢,但一定不会错过最终目标,所耗费的代价会有点看运气,如果恰巧走对了步骤流程,会节省很多。但有时候,我们根本等不到那么多时间让UCS找到那条比较复杂的,代价较小的路径,且很难去预估花费的时间,可能没那么久,也可能会耗费许多天,尤其是有一些边权为负时,还有可能让其走回头路。

2026-02-12 01:30:54 351

原创 数据科学每日总结--Day52--Dify使用经验

在排除了防火墙等通信问题后,终于在数据库的逻辑里发现了盲点:数据库里的工具id是api_provider.id,是一个UUID类型的值,而自定义工具在添加时的provider_id则是字符串类型,在添加自定义工具后,python后端尝试链接两个值时就会永远返回False(即使值相同,但是由于类型不同无法匹配),工具提供商被判定为"找不到",进而系统认为该工具的提供商已不存在,标记为deleted_tools,并在前端显示“工具已被移除”。

2026-02-01 02:24:49 333

原创 数据科学每日总结--DAY51--智能体

下面我们来看一个基本的智能体:问题解决智能体。其寻找解决问题的行动顺序是:基于当前的情况和智能体的影响(取决于问题),制定目标根据给定的目标,决定要考虑的行动与状态搜索:寻找这样一系列动作的过程。

2026-01-30 02:36:29 273

原创 数据科学每日总结--Day50--机器学习

一般默认一个好的分类器不仅要在训练集上正确分类,还要对未知样本(测试集)有好的泛化能力,而泛化能力好的分类器,其决策边界应该离两类样本都尽可能远。也就是说,要寻找一个能产生最大分类间隔的超平面(在训练样本线性可分的情况下,最大间隔超平面是唯一的,而其他可能有无穷多个分类超平面)。在几何上,决策边界离样本点越远,对数据中的噪声和微小扰动越鲁棒。(4)对于非线性可分的情况,引入核技巧:将数据映射到高维特征空间,使其在该空间中线性可分,而计算依然在原空间通过核函数完成,避免了显式的高维计算。

2026-01-29 08:50:56 470

原创 数据科学每日总结--Day49--大数据分析

可以用作统一的数据语言(将文本、图像、类别等不同格式的数据,全部转换为统一的数字格式(向量),让计算机可以用同一套数学方法(线性代数)处理一切),定义“相似度”和“距离”(在大数据分析中,我们经常要问:“这两个东西有多像?假设需要为100家餐厅选招牌菜,像米饭、青菜这类菜品,十家有八家都会有,就意味着其TF会很高,但因为基本都有,IDF会很低,那么他们的TF-IDF(直接相乘)就会很低,不会被纳入做招牌菜的范围;试想一下,如果只考虑一个词“喜欢”,而文档内多数是不喜欢,可能就会有错误的分析结果。

2026-01-28 04:16:14 380

原创 数据科学每日总结--Day48--大数据分析

基于将一个字符串转换为另一个字符串所需的编辑次数和类型(插入、删除、替换),比如Hamming 距离(将一串弦转换为另一串所需的最少替换次数的度量,也就是两个等长字符串之间,对应位置不同字符的个数)、Levenshtein 距离(将一个词改为另一个词所需的最少单字符编辑次数,操作包括插入、删除、替换)等。结合不同类型的相似度度量以提升性能或处理更复杂的比较任务,目前只有一种算法:Monge-Elkan,是基于编辑和基于标记的距离的混合。,特点是对称,对大小敏感,适用于化学指纹、集合比较。

2026-01-27 03:24:35 394

原创 数据科学每日总结--Day47--计算机视觉

核心思想是,用一个小的窗口(如3×3、5×5)在图像上滑动,对窗口内的像素进行计算,用计算结果替换中心像素。其中,根据输出的是否是线性组合,分为线性过滤和非线性过滤,即看过滤后的图像区域的像素值,是取最大、最小、中值这种还是平均值之类。此外,还有点处理(用一个小的窗口(如3×3、5×5)在图像上滑动,对窗口内的像素进行计算,用计算结果替换中心像素),几何处理(用一个小的窗口(如3×3、5×5)在图像上滑动,对窗口内的像素进行计算,用计算结果替换中心像素)等。

2026-01-26 04:40:43 234

原创 数据科学每日总结--Day46--大数据分析

RDD是Spark中的基本抽象(即对象),表示一个不可变的、可并行作的元素分区集合,其名字代表了其拥有的特点:分布式(数据被分割成多个分区,分布在集群的不同节点上),弹性(数据丢失时可以自动重建),不可变(一旦创建就不能修改,只能通过转换生成新的 RDD),内存计算(尽可能将数据保存在内存中加速计算),简单来说就是就像是一个分布式的、只读的、自动备份的数组,分布在多台机器上。

2026-01-22 02:24:37 449

原创 数据科学每日总结--Day45--Dify实战经验

最近在用dify做配置工作流和agent的项目,在使用的过程中,遇到了很多基本的使用问题,但是在网上查询时也没看到什么分享,似乎是大家都默认知道的,故在此把这些小白式问题的答案分享出来。

2026-01-21 02:16:36 287

原创 数据科学每日总结--Day44--机器学习

机器学习,从本质上来看,就是通过分析数据,结合数据的标签(是后续要预测的东西,可以是小麦的未来价格,所示的动物类型或者其他)和特征(输入变量,是从数据中观测或处理出来的信息)建立一个分析模型,这其实就是我们平时所说的训练,通过不断测 试,建立一个好的分析模型,然后通过一个未知的测试数据集,来预测数据的标签。一般机器学习分为监督学习,无监督学习,强化学习。

2026-01-18 03:31:13 410

原创 数据科学每日总结--Day43--计算机视觉

简介 计算机视觉是人工智能(AI)的一个领域,使计算机能够基于视觉输入(如图像、视频和实时相机馈送。它模仿了人类看待和理解世界的方式,但有能力更快、更准确地处理大量数据,比较常见的是面部识别,对象检测和图像分类。

2026-01-17 05:44:53 301

原创 数据科学每日总结--Day42--大数据分析

大数据是一个专注于存储、处理和分析来自多个来源的大量数据的领域,其不仅仅可以用来解决数据管理问题(如通过云储存,将数据分散到低成本服务器集群中,实现近乎无限的存储;批量进行数据分析;可以构建独立的扩展计算和存储资源,提高效率的同时降低成本),还能从数据中发现问题,进而给出决策并创造额外价值(如从销售额的波动,通过关联分析,用户行为分析给出原因和因果关系链,进而预测未来该采取什么决策或者预测未来的销售额趋势)。

2026-01-15 02:39:36 779

原创 数据科学每日总结--Day41--ubuntu安装tailscale

在用ubuntu开发时,我们经常是通过远程ssh连接来开发的。而对于有些在境外的开发人员来说,像向日葵这种软件的连接很不稳定,容易断开。这个时候,就需要我们在ubuntu上装tailscale供ssh连接了。

2026-01-09 03:50:51 503

原创 数据科学每日总结--Day40--表情识别

这部分其实就是我们要节省的成本,我们可以通过算法,比如光标,把人脸定位为许多个点,只要点的运动轨迹不超过一定范围,就认为表情没有发生变化,算法就返回一个“不变”给智能体,如果发生了变化,再传输一个“变化”的指令给智能体,然后再进行识别,这样既节省了成本,也能使整个过程变得高效,毕竟算法识别是否变化一般会比智能体识别快得多。就拿表情识别举例,我们想要智能体帮我们识别表情,这个表情我们可以看作是一个状态量,即用户的表情状态发生变化了,我们才需要智能体帮我们去识别用户到底和上一个状态相比变成了什么样。

2026-01-08 03:31:16 208

原创 数据科学每日总结--Day39--memory0框架

基于这个强大的功能,我们可以做很多事情,试想一下,既然记忆可以关联在一起,那么智能体不止可以实现之前说的用户画像,也可以做到比如重新讨论之前讨论过的话题或项目,跟进上周说过的计划等,记忆关联这个网络可以作为基础,打通跟用户的联系,这才是最关键的。随着学习的加深,我想不管是实现项目的什么功能,抓住智能体调用功能这个关键核心,然后不断扩展,像chroma,memory0框架这种都算是工具,因为本质都是存储数据的,从而最终实现项目功能。

2026-01-07 07:05:33 185

原创 数据科学每日总结--Day38--memory0

最近在做项目时,尝试把以前单纯用chroma向量库做记忆库的逻辑改为用memory0框架来存储,在解决问题的过程中,有一些心得与经验在此分享下。

2026-01-06 05:08:14 436

原创 数据科学每日总结--Day37--稀疏检索

在之前我们介绍过RAG流程中的BM25,原理是通过关键词进行匹配,这本质上是一种稀疏检索,因为只会匹配和关键词有关的文档,且很容易返回不相关的文档,而稠密检索则对应着的是语义检索,与稀疏相比就是能做到同义词的匹配,但是如果文档质量高,查询速度没有稀疏查询快,比如问的问题是小米手机,文档里全是关于手机方面的知识,那么此时稀疏检索会更快找到相关的文档,质量也高,如果知识库里的文档是混杂的,那么稠密搜索出来的文档质量就会更高。

2026-01-05 02:41:47 156

原创 数据科学每日总结--Day36--倒排与BM25

在RAG的检索流程中,最核心的就是倒排索引和BM25,一个用于尽可能地提升检索速度,一个用于对文档进行评分,从而优化检索流程。

2026-01-03 02:20:47 322

原创 数据科学每日总结--Day35--文档分块

分块后,还不能直接拿来运用,我们一般会将语义和递归分块的文档块,各自做语义相似度的计算,即将各个文档快转为向量,计算向量相似度,如果相似度比较高,说明重叠的比较大,切分的不太理想;之所以需要对文档分块,一是因为跟模型对话时有上下文限制,一次性丢太长的文档,模型对于很靠前的文档内容会“忘记",回答问题时可能会忽略一些细节;二是处理这么长的文档会耗费大量的时间成本和资源。语义分块:按照句子、段落或者主题分块的方法,相比固定长度,显得更灵活,保留的信息更完整,但是这样处理起来比较复杂,会耗费很多资源。

2026-01-02 03:05:40 214

原创 数据科学每日总结--Day34--RAG

在之前科普时,我们浅显地了解过RAG的作用,但是没提到过为什么需要RAG以及RAG的核心流程:召回和重排,下面我们来了解一下概念。

2025-12-31 02:44:14 332

原创 数据科学每日总结--Day33--智能体框架应用

之前提到过memory0框架的作用是可以优化存储,提高回答的效率并进一步体现智能化,但是在实际应用中,只单单用memory0的框架一般都是不够满足需求的,需要我们做扩展。

2025-12-29 02:00:42 269

原创 数据科学每日总结--Day32--dify安装

注意,这里txt的内容要按照博主这样的格式复制,如果没有按照格式,系统很可能识别不了这样的命令,会直接闪退终端窗口。),点击下载安装包,下载完成后,找到我们下载的dify文件夹下docker文件夹,找到文件.env.example,这里存放着我们的环境变量,将其复制一份并改名为.env(因为docker实际读取的是.env)。这里不直接改名的原因是因为防止后续要重置环境变量。如果不想在终端里输入,可以在docker文件夹的上方的路径指引里输入cmd打开,就会直接在终端显示在docker文件夹下打开了。

2025-12-28 02:26:03 582

原创 数据科学每日总结--Day31--统计学

我们一般在说SARIMA模型时会说建立一个乘积季节模型:SARIMA(p, d, q) × (P, D, Q)s。其中处理非季节性的部分(p, d, q)里,p代表自回归阶数(代表用过去多少天的值来预测当前时刻的值),d代表差分(预测值的变化量)次数,q代表移动平均阶数(用过去多少天的预测误差来修正今天的预测,也就是需要综合考虑多少天来预测今天),处理季节性的部分(P, D, Q)s里,P代表季节性自回归阶数,D代表季节性差分次数,Q代表季节性移动平均阶数,s代表季节周期。

2025-12-26 00:52:51 327

原创 数据科学每日总结--Day30--coze

之前提到过,可以通过coze这类平台来搭建工作流去实现许多功能或者搭建一个大的智能体框架,但是,看起来是很简单的模块拼装,但实际上,这更考验对于框架逻辑的熟悉,平台里基本都会有现在比较热门的框架(包括上一篇提到的长期记忆检索也有),只要模块和框架之间的信息传输和逻辑判定没问题就可以实现我们想要的大部分功能,以下是一些实用的技巧。

2025-12-25 01:46:07 332

原创 数据科学每日总结--Day29--大模型应用

这个功能会让AI在存储记忆时去分析用户画像,也就是说,随着跟用户交流的次数增多,用户给予的信息就越多,用户画像就会越来越完善,通过分析用户的信息,观察同类事件的频率,用户对某些事件的关注时间以及一起出现的事件群,智能体变得逐渐“懂”用户,甚至可以通过形成的用户画像,尝试去预测一些行为,给用户一些关心,比如用户在前端时间说自己喜欢喝咖啡,但是最近生病了,需要静养,就会提示要少喝咖啡,可以在早晨起来喝杯牛奶。不同于一般的记忆功能,智能体在收集跟用户对话的信息时,会主动地去辨别哪些是适合存储成长期信息的。

2025-12-24 01:59:08 251

原创 数据科学每日总结--Day28--autogen技巧

而在实际的使用中,我们一般是两者都用,只是会给予不同权重。这样与直接排名的区别在于,得到的分数归一化是以百分比的形式存在,表明看着和排名差不多,但却能表达出排名间的区别,比如80和50,同样都是第一和第二,后者只能知道80比50大,而前者可以知道80比50大得多。这里有个小技巧是,把提示词和需求输入给大模型,在要求其输入提示词后,再要求他追问,这个时候大模型追问的很多要求其实都是可以加入到提示词里的,这就相当于在提示词里做要做什么,不要做什么的限制,是让大模型从他的角度来看提示词的边界是否设置的好。

2025-12-23 02:16:58 130

原创 数据科学每日总结--Day27--autogen

相信在这个时代,很多人都听过用autogen框架来开发智能体会很便利,但其实仍然有很大一部分人对其一知半解,甚至许多人还是因为在用模型问问题时才听说的这个框架,今天我们就先来浅浅地介绍一下。

2025-12-21 01:19:00 375

原创 数据科学每日总结--Day26--数据挖掘

定义:在遗传算法中,交叉是用来模拟生物遗传过程中染色体之间基因组合的操作,目的是产生新的个体(下一代)。而一点交叉的具体做法是,在两个父代染色体的同一位置(交叉点)切开,然后交换切点后的基因段,从而生成两个新的子代。启发式与元启发式:GA/DE/PSO/SA/ACO 等,通过选择、交叉/变异、信息素、速度更新等逐步偏向更优区域。风险:过大像随机搜索,过小难以逃离局部最优风险:过大像随机搜索,过小难以逃离局部最优。并行化:批评估、种群算法天然并行(异步/岛模型),利用多核/GPU/集群。

2025-11-22 01:18:49 385

原创 数据科学每日总结--Day25--区块链

在这个定义中,“最长链”指的是区块链中当前最长的、包含最多区块的链,而“诚实区块”则是指那些没有被篡改或非法创建的区块,它们遵循了区块链网络的规则和共识机制。在这个定义中,“最长链”指的是区块链中当前最长的、包含最多区块的链,而“诚实区块”则是指那些没有被篡改或非法创建的区块,它们遵循了区块链网络的规则和共识机制。定义:双重支付攻击指的是在一个去中心化的支付系统中,某一方在没有被发现的情况下,花费相同的数额的一笔支付,即从一个账户中多次支付出同一笔数字货币。如果有,就再次调用withdraw函数。

2025-11-21 02:32:40 570

原创 数据科学每日总结--Day24--区块链

区块链的链增长指的是区块链网络中新区块产生的速度。这个过程是区块链技术中的核心机制之一,确保了网络的安全性和去中心化特性,也就意味着,区块链系统以大约每10分钟一个的速度不断生成新的区块,并将这些新区块按照时间顺序添加到区块链的末尾。定义:最长链协议是指在网络中的所有区块链中,节点始终将最长的链条视为有效的区块链,并在其上继续工作以延长该链条。增强区块链安全性:由于攻击者需要控制网络中超过50%的算力才能成功实施51%攻击等恶意行为,而最长链协议通过确保最长的区块链是安全的,从而增强了区块链的整体安全性。

2025-11-21 02:07:36 392

原创 数据科学每日总结--Day23--数据结构

假设我们有一个任务:计算某个目录下所有文件的总大小。亦或者,任务是当一个函数执行中抛出异常时,系统需要找到最近的异常处理器来处理它。定义:是一种数据结构,遵循先进后出的原则,先进:最先进入的数据,位于底部;后出:最后进入的数据,最先被移除。异常抛出时,系统依次从栈顶“回退”到之前的调用位置(pop),直到找到匹配的 catch 处理块。如果遇到子目录,则将“子目录计算任务”压入调用栈,等它计算完成后再回到上一级。第一层任务只有在所有对应的子任务完成之后,才会继续执行。最后调用的子任务,最先执行完成并返回。

2025-11-19 00:42:49 273

原创 数据科学每日总结--Day22--统计学

不直接依赖于单次划分(如一次训练集-测试集切分),而是多次抽样,避免评估结果过于依赖某个特定划分的偶然性。相比AIC,惩罚项由2k替换为kln(n),当样本量较大时,惩罚力度要大得多。依次将其中一个折作为验证集,其余K-1折作为训练集,训练并评估模型。,,RSS是残差平方和,TSS是总平方和,但问题是增加自变量时,与一般的K折交叉验证一样分成K个折,特殊的是K = 样本量 N。用途:类似于AIC,但惩罚力度更大,更倾向于选择简单模型。是模型的最大似然估计值,k是模型的参数总数(包含截距)

2025-11-17 23:52:08 640

原创 数据科学每日总结--Day21--统计学

定义:多元线性回归是一种统计方法,用来分析一个因变量与多个自变量之间的线性关系。one-hot Encoding:为每个类别生成一个新变量,类别取值为 0/1(类似虚拟变量)编码时必须避免虚拟变量陷阱,即避免完全多重共线性,通常会删除一个虚拟变量作为参照组。基础的多元线性回归并不总是适合问题,可以扩展为更灵活的模型来应对不同数据结构和问题。同方差性(Homoscedasticity) 误差项的方差恒定,不随自变量变化。效果编码:用 -1/0/1 表示类别,便于系数解释为相对基准的偏差。

2025-11-16 21:32:42 363

原创 数据科学每日总结--Day20--区块链

诚实的leader:在Streamlet中,一个诚实的leader是指在其负责的epoch内,它会按照协议规则提出一个新的区块,并诚实地与其他replica节点交互,以确保该区块能够被正确地公证和确认。区块提议与验证:领导者提出的区块需要满足一定的条件,即该区块必须是由具有提议权的领导者签名的,并且是在当前round中提出的。网络条件良好:良好的网络条件意味着这些诚实的leader提出的区块能够迅速地被其他replica节点接收到,并且这些节点之间的通信是可靠的,没有过多的延迟或丢包。

2025-11-15 23:34:58 1250

原创 数据科学每日总结--Day19--数据库

在统计数据库中,即使用户访问的都是非敏感数据,也可能通过组合查询结果推断出敏感数据,例如:查询某部门平均工资,再查询该部门去掉某人后的平均工资,可能推断出某人的工资。定义:是负责数据库系统的规划、安装、配置、维护、优化和安全的专业人员,例如管理数据库系统的中央机构,超级用户或系统账户等,主要负责数据库安全,数据库设计、存储和兼容性组织,备份和恢复,性能调优和支持等。定义:是指保护数据库中数据,防止其被未经授权访问、泄露、篡改或破坏,从而保障数据的机密性、完整性和可用性。

2025-11-15 00:07:33 434

原创 数据科学每日总结--Day18--数据库

规则描述:如果一个 老事务(TS 小)请求资源,且该资源被一个 更年轻事务(TS 大)占有,那么老事务 可以等待;SQL Server:定期检测,回滚“死锁牺牲者”事务(在数据库中,如果检测到事务出现死锁,那么必须通过终止至少一个事务来打破循环等待,让其他事务继续执行,被选择回滚的事务就叫做“死锁牺牲者”)。总结下来,等待-死亡规则是让老事务等待,让年轻事务频繁回滚或中断,而伤口等待规则则是老事务强势,让年轻事务被迫等待。如果一个年轻事务请求资源,且该资源被一个更老事务占有,年轻事务等待。

2025-11-13 22:25:42 582

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除