
经典算法
文章平均质量分 93
herosunly
985院校硕士毕业,现担任算法工程师一职,获得优快云博客之星第一名,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得多项AI顶级比赛的Top名次,其中包括阿里云天池比赛第一名,科大讯飞分类挑战赛第一名,CCF信息分类比赛比赛第二名,开放原子分类比赛二等奖,CCF家族分类第四名,科大讯飞阿尔茨海默症预测挑战赛第四名,科大讯飞事件抽取挑战赛第七名。在技术创新领域拥有多项授权发明。曾辅导多位非科班出身的同学成功进入算法行业就业。希望和大家一起成长进步。
展开
-
贪心算法和动态规划的区别与联系
1. 联系都是一种推导算法都是分解成子问题来求解,都需要具有最优子结构2. 区别贪心:每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留。动态规划:全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有的局部最优解贪心:如果把所有的子问题看成一棵树的话,贪心从根出发,每次向下遍历最优子树即可(通常这个“最优”都是基于当前情况下显而易见的“最优”);这样的话,就不需要知道一个节点的所有子树情况,于是构不成一棵完整的树。动态规划:动原创 2020-07-08 11:38:13 · 8518 阅读 · 5 评论 -
逻辑回归原理与代码
import numpy as npfrom sklearn.metrics import accuracy_scoreclass LogisticRegression: def __init__(self): self.coef_ = None self.intercept_ = None self._theta = None ...原创 2020-01-13 11:14:54 · 10609 阅读 · 1 评论 -
XGBoost总结
XGBoost=Extreme+GBDTXGBoost = Extreme + GBDT XGBoost=Extreme+GBDT =Extreme+Gradient+BDT= Extreme + Gradient + BDT =Extreme+Gradient+BDT =Extreme+Gradient+Boosting+DT=Extreme + Gradient + Boosting + DT...原创 2019-11-21 16:39:17 · 1829 阅读 · 1 评论 -
树模型总结
1. 决策树1.0 问题汇总 1. 如果决策树是二叉树,那么决策树是满二叉树嘛? 2. 决策树生长的过程的终止条件是哪些? 3. C4.5相比于ID3做了哪些改进?解决了什么问题?1.1 原理 决策树是通过单颗树来表示决策的过程和结果。这课树可以是二叉树(CART只能是二叉树),也可以是多叉树(原生的ID3树和C4.5树是多叉树,但sklearn中有二叉的ID3树)。 根节...原创 2019-11-17 11:43:52 · 6697 阅读 · 1 评论 -
Adaboost入门和思考
久闻各种boosting算法模型(Adaboost、Xgboost、Lightgbm、Catboost)的大名,却从来没有深入研究过。为了能够对后面三种模型有更加深入的理解,所以先从Adaboost开始入手。0. 代码实战0.1 导包from sklearn.ensemble import AdaBoostClassifierfrom sklearn.ensemble import R...原创 2019-10-12 16:14:33 · 3410 阅读 · 3 评论 -
信息量、信息熵、条件熵、KL散度、交叉熵
1. 信息量为了理解这个概念,我们先以两个具体的事件为例:事件1:德国队获得世界杯冠军。事件2:中国队获得世界杯冠军。凭直觉来说,信息量和概率是成反比的。具体来说,事件2发生的概率要比事件1小得多,所以事件2的信息量要比事件1大得多。事件E的信息量表达式为:I(E)=−log2(p(E))I(E)=-log_2(p(E))I(E)=−log2(p(E))。2. 信息熵信息熵和信息........................原创 2019-09-24 13:13:28 · 12123 阅读 · 0 评论 -
简单线性回归的解析解(最小二乘法)
这里所说的简单线性指的是一元线性回归,即特征个数为1,并且样本个数为m个。符号表示中y^i\hat y^iy^i表示的是对第i个样本的预测值。 所以损失函数L(w,b)=∑i=1m(yi−y^i)2=∑i=1m(yi−(wxi+b))2L(w,b)=\sum \limits _{i=1} ^m(y^i-\hat y^i)^2=\sum \limits _{i=1} ^m(y^i-(wx^...原创 2019-07-22 10:31:40 · 3825 阅读 · 0 评论 -
线性回归的梯度下降法之原理总结与代码实战
# 一元线性回归 一元线性回归的损失函数是$$L(a, b)=\sum_{i=1}^{n}(ax_{i}+b-y_{i})^2$$ 偏导数分别为$$\frac{\partial L}{\partial a}=\sum_{i=1}^{n}2x_{i}(ax_{i}+b-y_{i})$$$$\frac{\partial L}{\partial b}=\sum_{i=1}^{n}2(ax_{i}+b-y_{i})$$原创 2019-03-24 20:39:21 · 11503 阅读 · 0 评论 -
线性回归最小二乘法公式推导
# 1. 符号表示首先我们将训练样本的**特征矩阵X**进行表示,其中N为样本个数,p为特征个数,每一行表示为每个样本,每一列表示特征的每个维度:原创 2019-03-11 11:04:23 · 12018 阅读 · 0 评论 -
线性回归
线性回归的定义外事问谷歌,内事问百度。对于机器学习的重要概念的定义,我们需要去维基百科学习。原因在于两点,一为中文的翻译可能会误导人或者丢失一些重要知识点,二为百度百科中定义的内容良莠不齐。先把维基百科的定义搬运过来:In statistics, linear regression is a linear approach to modelling the relationship betwe...原创 2019-03-07 17:31:56 · 13680 阅读 · 1 评论 -
代码实现简单线性回归(单变量)
1. 使用自己生成数据(代码实现)import numpy as np m = 1000000test_x = np.random.random(size=m)test_y = test_x * 2 + 3 + np.random.normal(size=m)2. 算术法求解(代码实现)class LinearRegressionArithmetical:#算术法实现 d...原创 2019-03-02 18:23:12 · 10763 阅读 · 0 评论 -
线性回归之核心概念讲解
线性回归一、相关理论基础1.1 线性线性并不等于直线。线性函数的定义是:一阶(或更低阶)多项式,或零多项式。当线性函数只有一个自变量时,y = f(x);如果有多个独立自变量,表示为:1.2 极大似然估计定义:从样本中随机抽取n个样本,而模型的参数估计量使得抽取的这n个样本的观测值的概率最大。最大似然估计是一个统计方法,它用来求一个样本集的概率密度函数的参数。二、线性回归定义:...原创 2019-03-01 16:01:41 · 11701 阅读 · 0 评论 -
简单总结快速排序
快速排序分为普通快速排序和三路快排。普通快速排序在普通快速排序中,最核心的步骤就是挑选pivot和partition。其中挑选pivot有四种方式,如下所示,具体可参考 https://www.geeksforgeeks.org/quick-sort/:Always pick first element as pivot.Always pick last element as pivot...原创 2019-01-31 17:23:55 · 12711 阅读 · 0 评论