原文:https://cloud.tencent.com/community/article/161873
12)分类决策树C4.5
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:1) 用信息增益率 来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2) 在树构造过程中进行剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集 ,当训练集大得无法在内存容纳时程序无法运行。
构建一个决策树时,有2个重点,第一个是构建树的过程中首先选择哪个属性进行判断,即选择哪个属性作为根节点。 这个叫做属性选择度量 ,度量方式常见的有3种, ID3使用信息增益度, C4.5采用信息增益率, CART采用GINI指标 。第二个是如何修剪这棵树,即减枝。
信息增益率 使用“分裂信息”值将信息增益规范化。分类信息类似于Info(D),定义如下:
这个值表示通过将训练数据集D划分成对应于属性A测试的v个输出的v个划分产生的信息。信息增益率定义:
选择具有最大增益率的属性作为分裂属性。
13)集成学习
集成学习(英文: Ensemble Learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果 的一种机器学习方法。集成学习的思路是在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
集成学习方法是机器学习领域中用来提升分类算法准确率 的技术,主要包括Bagging和Boosting即装袋和提升。
14)集成学习之Bagging算法
装袋算法(bagging)采取自助法的思路,从样本中随机抽样,形成多个训练样本 ,生成多个树模型。然后以多数投票的方式来预测结果 。相同的分类器,各个分类器是独立的;使用同一个算法对样本多次训练,建立多个独立的分类器;最终的输出为各个分类器的投票(用于分类)或取平均值(用于数值预测)。
15)集成学习之Boosting算法
Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分类算法放于Boosting 框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本集上产生一个基分类器,这样在给定训练轮数 n 后,就可产生 n 个基分类器,然后Boosting框架算法将这 n个基分类器进行加权融合,产生一个最后的结果分类器,在这 n个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识别率,这样便提高了该弱分类算法的识别率。在产生单个的基分类器时可用相同的分类算法,也可用不同的分类算法,这些算法一般是不稳定的弱分类算法,如神经网络(BP) ,决策树(C4.5)等。
Boosting最早由Schapire 提出,Freund 对其进行了改进。通过这种方法可以产生一系列神经网络,各网络的训练集决定于在其之前产生的网络的表现,被已有网络错误判断的示例将以较大的概率出现在新网络的训练集中。这样,新网络将能够很好地处理对已有网络来说很困难的示例。另一方面,虽然Boosting方法能够增强神经网络集成的泛化能力,但是同时也有可能使集成过分偏向于某几个特别困难的示例。因此,该方法不太稳定,有时能起到很好的作用,有时却没有效果 。值得注意的是,Schapire 和Freund 的算法在解决实际问题时有一个重大缺陷,即它们都要求事先知道弱学习算法学习正确率的下限,这在实际问题中很难做到。1995年,Freund和Schapire 提出了AdaBoost(Adaptive Boost)算法 ,该算法的效率与Freund算法 很接近,却可以非常容易地应用到实际问题中,因此,该算法已成为目前最流行的Boosting算法。
Bagging 方法中,各神经网络的训练集由从原始训练集中随机选取若干示例组成,训练集的规模通常与原始训练集相当,训练例允许重复选取。这样,原始训练集中某些示例可能在新的训练集中出现多次,而另外一些示例则可能一次也不出现。Bagging方法通过重新选取训练集增加了神经网络集成的差异度,从而提高了泛化能力。Breiman 指出,稳定性是Bagging能否发挥作用的关键因素,Bagging能提高不稳定学习算法的预测精度,而对稳定的学习算法效果不明显,有时甚至使预测精度降低。学习算法的稳定性是指如果训练集有较小的变化,学习结果不会发生较大变化,例如,k最近邻方法是稳定的,而判定树、神经网络等方法是不稳定的。
Bagging与Boosting 的区别在于Bagging 的训练集的选择是随机的,各轮训练集之间相互独立 ,而Boosting的训练集的选择不是独立的,各轮训练集的选择与前面各轮的学习结果有关;Bagging 的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成 。对于象神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量时间开销。
此外还存在多种个体生成方法。例如,有些研究者 利用遗传算法来产生神经网络集成中的个体;有些研究者使用不同的目标函数、隐层神经元数、权空间初始点等来训练不同的网络,从而获得神经网络集成的个体。
16)集成学习之随机森林算法
随机森林(Random Forest算法),指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出,并被注册成了商标。简单来说,随机森林就是由多棵CART(Classification And Regression Tree)构成的 。对于每棵树,它们使用的训练集是从总的训练集中有放回采样 出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,根据Leo Breiman的建议,假设总的特征数量为M,这个比例可以是sqrt(M),1/2sqrt(M),2sqrt(M)。
因此,随机森林的训练过程可以总结如下:
(1)给定训练集S,测试集T,特征维数F。确定参数:使用到的CART的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:节点上最少样本数s,节点上最少的信息增益m,对于第1-t棵树,i=1-t
(2)从S中有放回的抽取大小和S一样的训练集S(i),作为根节点的样本,从根节点开始训练。
(3)如果当前节点上达到终止条件,则设置当前节点为叶子节点,如果是分类问题,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例;如果是回归问题,预测输出为当前节点样本集各个样本值的平均值。然后继续训练其他节点。如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征。利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点。继续训练其他节点。有关分类效果的评判标准在后面会讲。
(4)重复(2)(3)直到所有节点都训练过了或者被标记为叶子节点。
(5)重复(2),(3),(4)直到所有CART都被训练过。
利用随机森林的预测过程如下:
对于第1-t棵树,i=1-t:
(1)从当前树的根节点开始,根据当前节点的阈值th,判断是进入左节点(=th),直到到达,某个叶子节点,并输出预测值。
(2)重复执行(1)直到所有t棵树都输出了预测值。如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;如果是回归问题,则输出为所有树的输出的平均值。
17)集成学习之迭代决策树算法
GBDT(Gradient Boosting Decision Tree迭代决策树) 又叫 MART(Multiple Additive Regression Tree) ,是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。
GBDT有3个特征。 第一个是构建GBDT的树是回归决策树, 第二个是采用梯度迭代Gradient Boosting, 第三个是Shrinkage缩减技术。
回归树 Regression Decision Tree,提起决策树(DT, Decision Tree) 绝大部分人首先想到的就是C4.5分类决策树。但如果一开始就把GBDT中的树想成分类树,那就是一条歪路走到黑,一路各种坑,所以说千万不要以为GBDT是很多棵分类树。决策树分为两大类,回归树和分类树。前者用于预测实数值,如明天的温度、用户的年龄、网页的相关程度;后者用于分类标签值,如晴天/阴天/雾/雨、用户性别、网页是否是垃圾页面。这里要强调的是,前者的结果加减是有意义的,如10岁+5岁-3岁=12岁,后者则无意义,如男+男+女=到底是男是女? GBDT的核心在于累加所有树的结果作为最终结果 ,就像前面对年龄的累加(-3是加负3),而分类树的结果显然是没办法累加的,所以GBDT中的树都是回归树,不是分类树 ,这点对理解GBDT相当重要(尽管GBDT调整后也可用于分类但不代表GBDT的树是分类树)。
Boosting,迭代,即通过迭代多棵树来共同决策。这怎么实现呢?难道是每棵树独立训练一遍,比如A这个人,第一棵树认为是10岁,第二棵树认为是0岁,第三棵树认为是20岁,我们就取平均值10岁做最终结论?--当然不是!且不说这是投票方法并不是GBDT,只要训练集不变,独立训练三次的三棵树必定完全相同,这样做完全没有意义。之前说过,GBDT是把所有树的结论累加起来做最终结论的,所以可以想到每棵树的结论并不是年龄本身,而是年龄的一个累加量。GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量 。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。这就是Gradient Boosting在GBDT中的意义。
Shrinkage(缩减)的思想认为,每次走一小步逐渐逼近结果的效果,要比每次迈一大步很快逼近结果的方式更容易避免过拟合。即它不完全信任每一个棵残差树,它认为每棵树只学到了真理的一小部分,累加的时候只累加一小部分,通过多学几棵树弥补不足。用方程来看更清晰,即没用Shrinkage时:(yi表示第i棵树上y的预测值, y(1~i)表示前i棵树y的综合预测值)
y(i+1) = 残差(y1~yi), 其中: 残差(y1~yi) = y真实值 - y(1 ~ i)
y(1 ~ i) = SUM(y1, ..., yi)
Shrinkage不改变第一个方程,只把第二个方程改为:
y(1 ~ i) = y(1 ~ i-1) + step * yi
即Shrinkage仍然以残差作为学习目标,但对于残差学习出来的结果,只累加一小部分(step残差)逐步逼近目标,step一般都比较小,如0.01~0.001(注意该step非gradient的step),导致各个树的残差是渐变的而不是陡变的。直觉上这也很好理解,不像直接用残差一步修复误差,而是只修复一点点,其实就是把大步切成了很多小步。本质上,*Shrinkage为每棵树设置了一个weight,累加时要乘以这个weight,但和Gradient并没有关系 。这个weight就是step。就像Adaboost一样,Shrinkage能减少过拟合发生也是经验证明的,目前还没有看到从理论的证明。
18)Boosting算法之AdaBoost算法
boosting方法有许多不同的变形。其中最流行的一种就是AdaBoost方法,这个名称是“adaptive boosting”的缩写。这个方法允许设计者不断地加入新的“弱分类器”,直到达到某个预定的足够小的误差率。在AdaBoost方法中,每一个训练样本都被赋予一个权重,表明它被某个分类分类器选入训练集的概率。如果某个样本点已经被准确分类,那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被正确分类,那么它的权重就得到提高。通过这样的方式,AdaBoost方法能够“聚焦于”较为困难(更富有信息)的样本上 。在具体实现上,最初令每一个样本的权重都相同,对于第k次迭代操作,我们就根据这些权重来选取样本点,进而训练分类器,然后根据这个分类器来提高被他错分的那些样本点的权重,并降低被正确分类的样本权重。
19)KNN
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类 技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
算法流程如下:1. 准备数据,对数据进行预处理;2. 选用合适的数据结构存储训练数据和测试元组;3. 设定参数,如k;4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列;5. 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax;6. 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。7. 遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别。8. 测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值;
KNN的优点在于:1.简单,易于理解,易于实现,无需估计参数,无需训练;2. 适合对稀有事件进行分类;3.特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。
KNN的缺点在于:该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。可理解性差,无法给出像决策树那样的规则。
20)神经网络
人工神经元 是神经网络的基本元素,其原理可以用下图表示:
常见的激活函数有以下5类:
神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网络结构主要可以分为下面3类:
(1) 前馈神经网络 ( Feedforward Neural Networks ) 前馈网络也称前向网络。这种网络只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出层,层间没有向后的反馈信号 ,因此被称为前馈网络。感知机( perceptron)与BP神经网络就属于前馈网络。图4是一个3层的前馈神经网络,其中第一层是输入单元,第二层称为隐含层,第三层称为输出层(输入单元不是神经元,因此图中有2层神经元)
(2) 反馈神经网络(Feedback Neural Networks ) 反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。典型的反馈型神经网络有:Elman网络和Hopfield网络;
(3) 自组织网络 ( SOM ,Self-Organizing Neural Networks ) 自组织神经网络是一种无监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构;
"BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法 训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。"
BP是后向传播的英文缩写,那么传播对象是什么?传播的目的是什么?传播的方式是后向,可这又是什么意思呢。传播的对象是误差,传播的目的是得到所有层的估计误差,后向是说由后层误差推导前层误差:
BP的思想可以总结为利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。BP利用一种称为激活函数 来描述层与层输出之间的关系,从而模拟各层神经元之间的交互反应。激活函数必须满足处处可导的条件 。
你可能感兴趣的:(机器学习/深度学习)
基于YOLOv5、YOLOv8和YOLOv10的自助售货机商品检测:深度学习实践与应用
2025年数学建模美赛
YOLO 深度学习 人工智能 目标跟踪 目标检测
引言自助售货机已经成为现代零售和自动化销售领域的重要组成部分。在自助售货机中,商品的检测与管理至关重要。通过精准的商品检测技术,售货机可以在商品售出后自动更新库存,并提供准确的商品信息反馈。然而,在复杂的环境下进行商品检测是一个具有挑战性的问题,尤其是在商品种类繁多、摆放方式多样以及光照条件变化较大的情况下。近年来,基于深度学习的目标检测算法,特别是YOLO(YouOnlyLookOnce)系列模
【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用
丶2136
AI 分类 人工智能 损失函数
引言在深度学习中的分类问题中,类别不平衡问题是常见的挑战之一。尤其在面部表情分类任务中,不同表情类别的样本数量可能差异较大,比如“开心”表情的样本远远多于“生气”表情。面对这种情况,普通的交叉熵损失函数容易导致模型过拟合到大类样本,忽略少数类样本。为了有效解决类别不平衡问题,Class-balancedExponentialFocalLoss(CEFL)和Class-balancedExponen
交叉熵损失函数(Cross-Entropy Loss)
我叫罗泽南
深度学习 人工智能
原理交叉熵损失函数是深度学习中分类问题常用的损失函数,特别适用于多分类问题。它通过度量预测分布与真实分布之间的差异,来衡量模型输出的准确性。交叉熵的数学公式交叉熵的定义如下:CrossEntroyLoss=−∑i=1Nyi⋅log(y^i)\begin{equation}CrossEntroyLoss=-\sum_{i=1}^{N}y_i\cdotlog(\hat{y}_i)\end{equati
什么是多模态机器学习:跨感知融合的智能前沿
非凡暖阳
人工智能 神经网络
在人工智能的广阔天地里,多模态机器学习(MultimodalMachineLearning)作为一项前沿技术,正逐步解锁人机交互和信息理解的新境界。它超越了单一感官输入的限制,通过整合视觉、听觉、文本等多种数据类型,构建了一个更加丰富、立体的认知模型,为机器赋予了接近人类的综合感知与理解能力。本文将深入探讨多模态机器学习的定义、核心原理、关键技术、面临的挑战以及未来的应用前景,旨在为读者勾勒出这一
AI大模型如何赋能电商行业,引领变革
虞书欣的C
人工智能 开发语言
•个性化推荐:利用机器学习算法分析用户的历史购买记录、浏览行为和喜好,生成个性化的产品推荐列表,提升用户的购买意愿和满意度。•优化用户体验:•智能搜索引擎:运用自然语言处理技术,优化搜索引擎,让用户能够通过自然语言进行搜索。•虚拟客服:通过聊天机器人和语音助手,提供24/7的客户支持,快速解答用户咨询。•图像识别:利用计算机视觉技术,用户可以通过拍照识别商品,快速找到相似商品或进行排版搭配推荐。•
AI大模型引领医疗变革:十大创新应用场景塑造智慧医疗新时代
和老莫一起学AI
人工智能 自动化 数据库 学习 语言模型 大模型
前言在人工智能技术的迅猛发展中,AI大模型以其无与伦比的数据处理能力和深度学习能力,正逐步成为医疗健康领域变革的引领者。本文旨在深入探讨AI大模型在医疗领域的十大创新应用场景,展示其如何显著提升医疗服务效率、赋能临床决策,并推动整个行业向智能化转型。一、智能化诊疗:精准辅助,提升诊断效率AI大模型凭借对海量医疗数据的深度分析,能够协助医生进行更为精准的诊断。例如,百度灵医大模型凭借强大的数据处理能
技术文档的精髓:规划布局、语言表达与更新维护
重庆钢铁侠
经验分享
本文将从技术文档的规划布局、语言表达以及更新与维护三个方面入手,探讨如何打造一份出色的技术文档,确保信息的系统性、连贯性以及时效性。一:技术文档的规划布局1.1确定文档的整体架构技术文档的规划布局是确保信息呈现系统性和连贯性的关键。首先,需要确定文档的整体架构,这包括章节设置和逻辑顺序。一个好的架构应该能够清晰地指导读者从入门到精通。章节设置:根据文档的目的和受众,合理设置章节。例如,对于深度学习
数学:机器学习的理论基石
每天五分钟玩转人工智能
机器学习 人工智能
一、数学:机器学习的理论基石机器学习是一种通过数据学习模式和规律的科学。其核心目标是从数据中提取有用的信息,以便对未知数据进行预测和分类。为了实现这一目标,机器学习需要一种数学框架来描述和解决问题。数学在机器学习中起着至关重要的作用,它提供了一种数学模型来描述数据和模式,以及一种数学方法来优化模型。数学在机器学习中的应用非常广泛,涵盖了线性代数、概率论、统计学、微积分、优化等多个领域。这些数学方法
【机器学习:二十六、决策树】
KeyPan
机器学习 机器学习 决策树 人工智能 算法 深度学习 数据挖掘
1.决策树概述决策树是一种基于树状结构的监督学习算法,既可以用于分类任务,也可以用于回归任务。其主要通过递归地将数据划分为子集,从而生成一个具有条件结构的树模型。核心概念节点(Node):每个节点表示一个特定的决策条件。根节点(RootNode):树的起点,包含所有样本。分支(Branch):每个分支代表一个条件划分的结果。叶节点(LeafNode):终止节点,表示最终的决策结果。优点直观可解释:
基于深度学习的推荐系统构建:Movielens 数据集
fresh的转码之路
深度学习 人工智能 机器学习 推荐算法
基于深度学习的推荐系统构建:Movielens数据集依赖环境代码语言:python3.11.5开发平台:pycharmtensorflow版本:2.18.0MovieLen1M数据及简介MovieLens1M数据集包含包含6000个用户在近4000部电影上的100万条评分,也包括电影元数据信息和用户属性信息。下载地址为:http://files.grouplens.org/datasets/mov
机器学习数学基础-极值和最值
华东算法王(原聪明的小孩子
小孩哥解析宋浩微积分 机器学习 算法 人工智能
极值和最值极值和最值是数学中关于函数变化的重要概念,它们描述了函数在某些点附近或在整个定义域内的“最大”或“最小”行为。理解极值和最值对优化问题、函数分析、物理建模等领域有重要的应用。1.极值(LocalExtrema)极值是指函数在某个区间内的某一点取得的局部最大值或最小值。(1)局部最大值(LocalMaximum)一个函数在某点(x=c)取得局部最大值,意味着存在一个包含(c)的小区间,使得
17-7 向量数据库之野望7 - PostgreSQL 和pgvector
拉达曼迪斯II
AIGC学习 数据库管理工具 AI创业 数据库 postgresql 人工智能 机器学习 AIGC 搜索引擎
PostgreSQL是一款功能强大的开源对象关系数据库系统,它已将其功能扩展到传统数据管理之外,通过pgvector扩展支持矢量数据。这一新增功能满足了对高效处理高维矢量数据日益增长的需求,这些数据通常用于机器学习、自然语言处理(NLP)和推荐系统等应用。https://github.com/mazzasaverio/find-your-opensource-project什么是pgvector?
海外抖音技术深度解析:算法、AI与全球化的挑战
神探阿航
计算机产业科普与思考 算法 人工智能 机器学习 数据挖掘 深度学习
引言2025年1月19日,在美国宣布暂停服务,这一事件引发了全球用户的广泛关注。作为全球最受欢迎的短视频平台之一,其成功离不开其强大的技术支撑,尤其是其个性化推荐算法和AI驱动的创作工具。然而,随着全球市场环境的变化,它面临的技术与运营挑战也日益凸显。本文将深入分析其技术核心、全球化运营中的挑战及其未来发展方向。核心:个性化推荐引擎其算法是其成功的关键,其核心在于个性化推荐引擎。该引擎采用深度学习
YOLOv8与Transformer:探索目标检测的新架构
AI架构设计之禅
AI大模型应用入门实战与进阶 大数据AI人工智能 计算科学 神经计算 深度学习 神经网络 大数据 人工智能 大型语言模型 AI AGI LLM Java Python 架构设计 Agent RPA
YOLOv8与Transformer:探索目标检测的新架构关键词:目标检测,深度学习,YOLOv8,Transformer,计算机视觉,卷积神经网络摘要:目标检测是计算机视觉领域的一项重要任务,其目标是从图像或视频中识别和定位特定对象。近年来,YOLO(YouOnlyLookOnce)系列算法以其高精度和高速度成为目标检测领域的佼佼者。最新版本的YOLOv8引入了Transformer架构,进一步
图像生成大模型:Imagen 详解
转角再相遇
imagen python 深度学习 计算机视觉
近年来,图像生成技术取得了显著进展,推动了计算机视觉和生成对抗网络(GAN)等领域的发展。Imagen是一个新兴的图像生成大模型,其在生成高质量、逼真图像方面表现出色。本文将详细讲解Imagen的基本原理、架构、训练流程及应用场景。1.Imagen的基本原理1.1什么是Imagen?Imagen是一种基于深度学习的图像生成模型,结合了自注意力机制(Self-attentionMechanism)和
【MySQL】Mysql数据库导入导出sql文件、备份数据库、迁移数据库
程序员洲洲
数据库 数据库 mysql 导入导出sql sql文件 备份迁移
本文摘要:本文提出了xxx的实用开发小技巧。作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入我的社群,也可以直接vx联系(文末有名片)v:bdizztt随时
实战千问2大模型第五天——VLLM 运行 Qwen2-VL-7B(多模态)
学术菜鸟小晨
千问 多模型 qwen2 vl
一、简介VLLM是一种高效的深度学习推理库,通过PagedAttention算法有效管理大语言模型的注意力内存,其特点包括24倍的吞吐提升和3.5倍的TGI性能,无需修改模型结构,专门设计用于加速大规模语言模型(LLM)的推理过程。它通过优化显存管理、支持大模型的批处理推理以及减少不必要的内存占用,来提高多GPU环境下的推理速度和效率。VLLM的核心特点包括:显存高效性:VLLM能够动态管理显存,
qwenvl 代码中的attention pool 注意力池如何理解,attention pool注意力池是什么?
OpenSani
AI 大模型 计算机视觉 语言模型 qwenvl LLM
qwenvl中的attentionpool如何理解,其实这就是一个概念的问题看qwenvl的huggingface的代码的时候,发现代码里有一个Resampler以及attn_pool,这和之前理解的连接池线程池表示资源复用的意思不太一样,查了一下:注意这里的pool和线程池连接池里面的pool不一样:深度学习中的池化:池化在深度学习中主要指通过滑动窗口对特征图进行下采样,提取最重要的特征,减少计
计算机视觉与深度学习:使用深度学习训练基于视觉的车辆检测器(MATLAB源码-Faster R-CNN)
ZhShy23
javascript 深度学习
在人工智能领域,计算机视觉是一个重要且充满活力的研究方向。它使计算机能够理解和分析图像和视频数据,从而做出有意义的决策。其中,目标检测是计算机视觉中的一项关键技术,它旨在识别并定位图像中的多个目标对象。车辆检测作为目标检测的一个重要应用,在自动驾驶、智能交通系统等领域有着广泛的应用前景。本文将介绍如何使用MATLAB和深度学习技术,特别是FasterR-CNN模型,来训练一个车辆检测器。文章目录一
GAN在图像增强中的应用实战指南
码字仙子
本文还有配套的精品资源,点击获取简介:图像增强技术通过算法改善图像质量,GAN作为一种生成对抗网络,在此领域具有重要应用。通过生成器和判别器的对抗性训练,GAN可以生成逼真图像、修复低质量图像、扩增数据集并进行风格迁移。本项目将介绍如何使用Python及其相关库实现GAN图像增强,包括模型的构建、训练和评估。通过项目案例学习,你可以掌握GAN在图像增强中的实际应用,提高图像处理和深度学习的技能。1
【Python机器学习】无监督学习——K-均值聚类算法
zhangbin_237
Python机器学习 机器学习 算法 python kmeans k-means 均值算法
聚类是一种无监督的学习,它将相似的对象归到同一簇中,它有点像全自动分类。聚类方法几乎可以应用于所有的对象,簇内的对象越相似,聚类的效果越好。K-均值聚类算法就是一种典型的聚类算法,之所以称之为K-均值是因为它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。簇识别给出聚类结果的含义,假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。聚类与分类的最大不同在
【Python】已解决:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module i
屿小夏
python pip ssl
个人简介:某不知名博主,致力于全栈领域的优质博客分享|用最优质的内容带来最舒适的阅读体验!文末获取免费IT学习资料!文末获取更多信息精彩专栏推荐订阅收藏专栏系列直达链接相关介绍书籍分享点我跳转书籍作为获取知识的重要途径,对于IT从业者来说更是不可或缺的资源。不定期更新IT图书,并在评论区抽取随机粉丝,书籍免费包邮到家AI前沿点我跳转探讨人工智能技术领域的最新发展和创新,涵盖机器学习、深度学习、自然
深度学习模型推理速度/吞吐量计算(附代码)
Scabbards_
1500深度学习笔记 深度学习 人工智能
参考博文:https://mp.weixin.qq.com/s?__biz=MzI4MDYzNzg4Mw==&mid=2247546551&idx=2&sn=f198b6365e11f0a18832ff1203302632&chksm=ebb70e63dcc0877569d1838b2391744be628bf6cbb6e203a49f855e0769ecbbbf5a9929fe2db&scene
PyTorch使用教程- Tensor包
Loving_enjoy
论文 pytorch 人工智能
###PyTorch使用教程-Tensor包PyTorch是一个流行的深度学习框架,它提供了一个易于使用的API来创建和操作张量(Tensors)。张量是一个多维数组,类似于NumPy中的ndarray,但它是基于GPU的,支持自动求导。本文将详细介绍PyTorch中的Tensor包,包括张量的创建、运算、形状变换、索引与切片、以及重要的张量处理方式。####一、张量的创建在PyTorch中,可以
ChatGPT详解
Loving_enjoy
实用技巧 人工智能 自然语言处理
ChatGPT是一款由OpenAI研发和维护的先进的自然语言处理模型(NLP),全名为ChatGenerativePre-trainedTransformer,于2022年11月30日发布。以下是对ChatGPT的详细介绍:###一、技术架构与原理1.**技术架构**:ChatGPT建立在Transformer架构之上,这是一种深度学习模型,特别适用于处理自然语言。其核心是自注意力机制,允许模型在
机器学习特征重要性之feature_importances_属性与permutation_importance方法
一叶_障目
机器学习 python 数据挖掘
一、feature_importances_属性在机器学习中,分类和回归算法的feature_importances_属性用于衡量每个特征对模型预测的重要性。这个属性通常在基于树的算法中使用,通过feature_importances_属性,您可以了解哪些特征对模型的预测最为重要,从而可以进行特征选择或特征工程,以提高模型的性能和解释性。1、决策树1.1.sklearn.tree.Decision
机器学习-期末测试
难以触及的高度
机器学习 python 人工智能
机器学习-期末测试线性回归1.代码展示#coding=UTF-8#拆分训练集和测试集importmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_split#是线性回归类是sklearn写好的根据梯度下降法fromsklearn.linear_modelimportLinearRegressionimportpand
机器学习的介绍
2201_75874206
机器学习 人工智能
目录1.机器学习的定义2.机器学习的原理3.机器学习的方法4.机器学习的分类5.机器学习的评估6.机器学习的应用场景7.机器学习与人工智能的关系结论机器学习在自然语言处理中的最新应用和技术是什么?如何评估机器学习模型的性能,除了交叉验证、MSE和RMSE外,还有哪些其他重要的指标?在金融风险管理中,机器学习如何帮助预测市场趋势和信用风险?市场趋势预测信用风险评估机器学习与人工智能之间的关系在未来发
Kaggle欺诈检测:使用生成对抗网络(GAN)解决正负样本极度不平衡问题
Loving_enjoy
论文 深度学习 计算机视觉 人工智能
###Kaggle欺诈检测:使用生成对抗网络(GAN)解决正负样本极度不平衡问题####引言在金融领域中,欺诈检测是一项至关重要的任务。然而,欺诈交易数据往往呈现出正负样本极度不平衡的特点,这给机器学习模型的训练带来了挑战。传统的分类算法在面对这种不平衡数据时,往往会导致模型对多数类(正常交易)过拟合,而对少数类(欺诈交易)的识别能力较差。为了解决这个问题,生成对抗网络(GAN)提供了一种有效的手
一文读懂:无监督学习与有监督学习的区别与应用
码上飞扬
学习
在机器学习的世界里,无监督学习和有监督学习是两个最为常见且重要的概念。理解这两者的区别和应用场景,不仅有助于我们选择合适的算法和模型,还能帮助我们更好地解决实际问题。那么,什么是无监督学习和有监督学习呢?本文将带你详细了解这两种学习方式的定义、区别以及典型应用。目录无监督学习是什么?有监督学习是什么?无监督学习与有监督学习的主要区别无监督学习的典型应用有监督学习的典型应用如何选择合适的学习方法?1
github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected] "
ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
读书笔记-jquey+数据库+css
chengxuyuancsdn
html jquery oracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
shiro入门学习
cugfy
java Web 框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
unicode转换成中文
adminjun
unicode 编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11 单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
[Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
linux shell 中文件编码查看及转换方法
daizj
shell 中文乱码 vim 文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
Java反转字符串
dyy_gusi
java 反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
UI设计中我们为什么需要设计动效
gcq511120594
UI linux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
JBOSS服务部署端口冲突问题
HogwartsRow
java 应用服务器 jboss server EJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdb reids twemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
程序员解决问题的60个策略
pda158
框架 工作 单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它