- 博客(12)
- 收藏
- 关注
原创 2021-09-04
机器学习(自己理解的)参数模型vs非参数模型参数模型会假设总体服从某个分布,这个分布由一些参数决定,比如正态分布由方差与标准差决定,在此基础构建的模型属于参数模型。而非参数模型对于数据的总体分布不做假设或者说数据分布假设自由,知道它分布存在,但是无法知道分布的参数,只能通过分参数统计的方法进行推断非参数模型不是说模型里没有参数,这个“参数”说的是数据分布的参数参考这里判别式模型与生成式模型判别式模型针对条件分布建模,而生成式模型针对联合分布建模判别式模型根据训练数据得到分类函数
2021-09-04 18:32:50
142
原创 2021-08-17
梯度消失与爆炸表现梯度消失表现在损失基本不变或者在一个很小的范围内变化梯度爆炸主要表现在损失大幅度跳动原因消失的原因是因为网络层次过深,激活函数选择不当,导数连乘导致爆炸的原因也是因为网络过深反向传播初始权重过大,导数连乘导致解决办法解决爆炸可以使用梯度截断,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸,还有权重正则,batchNorm,解决消失可以换用relu损失函数,batchNorm,残差
2021-08-17 23:04:46
123
原创 2021-08-10
一些笔记逻辑回归,SVM,决策树都是分类模型,那么面对一个分类问题,应该怎么选择?逻辑回归优点:便利的观测样本概率分数,有高效的工具实现,广泛应用于工业问题,缺点:特征空间大,大量多类特征效果不好支持向量机:能处理大型特征空间,能处理非线性特征之间的相互作用。缺点当观测样本很多时,效率不高,有时候合适的核函数比较难找决策树:优点直观的决策规则,可以处理非线性数据,考虑到了变量间的相互作用。缺点容易过拟合(随机森林克服了这个缺点),无法输出分数只能输出类别选择:数据特征多可以选择svm,样本多可
2021-08-10 22:16:11
291
原创 2021-08-01
8.1刷题找两个节点的最近公共祖先二叉搜索树,如果root的值在两个节点之间,那么说明root即为公共祖先,返回root,如果两个节点的值都小于root,那么递归去root的左子树,否则右子树普通树,递归分别去左子树右子树找输入的两个节点,如果在左子树没有找到,说明两个节点都在右子树二叉搜索树代码class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode'
2021-08-01 19:45:26
138
原创 2021-07-24
task06 boostingadaboost基本思路初始化训练样本的权值分布,每个样本相同权重训练弱分类器,如果样本分类正确,则在构建下一个训练集中,他的权重就被降低,用更新过的样本训练下一个分类器将所有弱分类器组合成强分类器,各个弱分类器的训练结束后,加大分类正确分类器的权重,降低分类错误率高的若分类器的权重 具体步骤如下:adaboost与Gbdt的区别gbdt拟合的是残差...
2021-07-25 23:27:11
73
原创 2021-07-22
task051.集成学习(弱分类器变为强分类器)bagging(自助有放回抽样)boosting(叠加式)stacking(把模型1的结果作为模型2的输入)1.什么是bootstraps利用有限的样本经由多次重复抽样,是非参数统计方法,其实质是对观测信息进行再抽样,进而对总体的分布特性进行统计推断bootstraps与bagging的联系bagging用了bootstraps方法,抽样建立了很多弱学习器,减低模型方差什么是baggingbagging是投票式算法,首先使用Bootstra
2021-07-22 22:23:23
82
原创 2021-07-20
task04 分类问题分类问题和回归问题的联系与区别,如何用回归问题解决分类问题分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。他们的损失函数也不相同可以给回归问题的输出值设定一个阈值,超出阈值的为一类,在阈值里的为另一类2.为什么分类问题的损失函数是交叉熵而不是均方如果用均方做损失函数,当真实值与预测值的差值很大时,参数的梯度反而很小,不能快速收敛分类问题中,对于类别之间的相关性,我们缺乏先验。虽然我
2021-07-20 23:27:59
94
1
原创 2021-07-18
task03打卡偏差与方差偏差描述的是预测值与真实值的差距,差距越大,偏差越大,方差描述的是预测值的分布,方差越大,分布越分散2.误差与方差跟偏差之间的关系首先 Error = Bias + VarianceError反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。...
2021-07-18 23:32:58
59
原创 2021-07-15
task2打卡最小二乘法我的理解就是最小二乘法(最小化平方和)的思想是预测值与实际值之间的距离最小,通过平方损失函数建立模型优化目标函数的一种思路,计算偏导,让偏导等于0几何意义就是高维空间中的一个向量在低维子空间的投影与梯度下降的区别:都输求函数的最小值,但是并不是所有拟合函数都能通过最小二乘求解,这是可以用梯度下降,拟合函数,损失函数模型以及求偏导与最小二乘法都一样,唯一区别在于如何获得最优解,最小二乘法是直接令导数等于0求解,而梯度下降法是沿着梯度下降的方向逐步迭代,不断逼近最小值来求解
2021-07-15 18:25:51
272
原创 2021-07-13
第一天打卡1.画图import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax3 = plt.axes(projection = '3d')x1 = np.linspace(-100, 100, 256)x2 = np.linspace(-100, 100, 256)X1,X2 = np.meshgrid(x1,x2)Z = (a - X1)**2 + b * (X2- X1*X1)**2a = 0.1b =
2021-07-13 23:05:11
66
原创 2021-07-11
刷题记录7.9 比特数记位class Solution: def countBits(self, n: int) -> List[int]: if n==0: return [0] high_hit = 0 res = [0] for i in range(1,n+1): if i & (i-1) == 0: high_hit = i
2021-07-11 20:28:46
146
原创 2021-06-23
6/23刷题笔记力扣62:不同路径自己:使用了回溯法,超时,因为会有很多重复调用,可以加一个缓存,代码如下:(递归从下到上)class Solution(object): def uniquePaths(self, m, n): d = {} def dfs(i, j): # 如果(i,j)在缓存中则直接返回 if (i, j) in d: return d[i,j]
2021-06-24 22:48:06
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人