- 博客(57)
- 收藏
- 关注
原创 无sudo权限安装git lfs
1直接运行bash install.sh会报错,提示需要sudo权限。此时,我们只需要用文本编辑器打开install.sh,将prefix后面的路径修改为local user下的自定义路径,保存后再bash即可完美运行。
2023-05-20 11:33:25
946
原创 数据流的中位数 python 双堆
思路要取得中位数,所以只要关注前一半数字的最小值和后一段数字的最大值,采用堆来进行维护https://leetcode-cn.com/problems/shu-ju-liu-zhong-de-zhong-wei-shu-lcof/solution/jian-zhi-41shu-ju-liu-zhong-wei-shu-shua-w7yh/# 奇数时向小根堆添加,但是确保向小根堆中添加元素比大根堆元素大,故先加入大根堆,将大根堆堆顶弹出给小根堆#偶数时向左边大根堆添加,但是确保向大根堆添加元素均比小根
2021-06-26 11:00:21
256
原创 为什么高斯核参数多
看到知乎上一个问题的回答下有『RBF核:主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。』请问参数多主要体现在哪里呢?公式里面不就一个sigma平方吗?『RBF核:主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。』这里的参数是模型的参数(系数)。『请问参数多主要体现在哪里呢?公式里面不就一个sigma平方吗?』这里的参数是指模型的超参数。我们调参的时候是调节的超参数。模型自己学习的是参数。我们知道SVM的kernel function很多时候是用来升维的。每个维度对应着一个参
2021-03-14 21:32:30
234
原创 为什么正则化可以减小过拟合?
拟合就是所谓的模型对可见的数据过度自信, 非常完美的拟合上了这些数据, 如果具备过拟合的能力, 那么这个方程就可能是一个比较复杂的非线性方程 , 正是因为这里的 x^3 和 x^2 使得这条虚线能够被弯来弯去, 所以整个模型就会特别努力地去学习作用在 x^3 和 x^2 上的 c d 参数. 但是我们期望模型要学到的却是这条蓝色的曲线. 因为它能更有效地概括数据.而且只需要一个 y=a+bx 就能表达出数据的规律. 或者是说, 蓝色的线最开始时, 和红色线同样也有 c d 两个参数, 可是最终学出来时, .
2021-03-13 21:05:34
161
原创 小提琴图解读
从上面的小提琴图可以看出,不同的变速箱类别对应的二手车价格是不同的。当变速箱类别为1时,汽车价格相对更高。在建模的过程中,往往这种差异性较大的变量对于建模的效果更好,因此可以初步筛选出gearbox作为后面模型的输入变量。从分布情况来看,由于小提琴图的均值在下方,故price极度右偏。由于目标变量不符合正态分布,在进行回归之前,需要对其进行转换,常用的转换方法有取对数和拟合无界约翰逊分布。参考:https://blog.csdn.net/weixin_45481473/article/details/.
2021-03-13 10:18:52
5975
原创 Python查看路径
先要装载 os模块,# '.‘代表当前的路径,’…'代表当前路径的上一级路径,当前路径是F:\Temp, 则 . 的绝对路径就是F:\Temp, … 的绝对路径就是F:\。import osprint(os.getcwd())print(os.path.abspath('.'))print(os.path.abspath(os.curdir))# 获取上级目录print (os.path.abspath('..'))#输出C:\Users\吴梅梅\Desktop\CompectionC:\
2021-03-12 09:36:43
126
原创 AUC的物理意义
https://tracholar.github.io/machine-learning/2018/01/26/auc.html
2021-03-11 19:14:54
262
原创 二分法
模板参见 labuladong在排序数组中查找元素的第一个和最后一个位置很清晰的题解class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: def left_bound(l,r): while(l<=r): mid=(l+r)//2 if(nums[mid]==ta
2021-03-09 15:58:31
91
原创 回溯模板
class Solution: def letterCombinations(self, digits: str) -> List[str]: dict1 = { "2":"abc", "3":"def", "4":"ghi", "5":"jkl", "6":"mno", "7":"pqrs", "8
2021-03-06 14:22:38
129
原创 LDA与PCA较好的文章
https://www.cnblogs.com/yumoye/p/10332156.htmlhttps://www.jianshu.com/p/bc97f487ad02https://blog.codinglabs.org/tag.html#%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0https://zhuanlan.zhihu.com/p/77151308
2021-03-05 22:50:39
69
原创 二叉树的四种遍历方式 迭代+递归
中序遍历的迭代解法,需要用栈来做,思路是从根节点开始,先将根节点压入栈,然后再将其所有左子结点压入栈,然后取出栈顶节点,保存节点值,再将当前指针移到其右子节点上,若存在右子节点,则在下次循环时又可将其所有左子结点压入栈中。这样就保证了访问顺序为左-根-右。...
2021-03-05 14:42:42
84
原创 二叉树 先序遍历 递归与迭代
class Solution(object): def __init__(self): self.res = [] def preorderTraversal(self, root): # res = [] 递归时注意不要把结果初始化放在其中,否则会改变 if root == None: return [] self.res.append(root.val) self.preorderT
2021-03-05 11:59:51
80
原创 二叉树的中序遍历 递归与迭代
中序遍历 迭代:class Solution(object): def inorderTraversal(self, root): # 中序:左根右 """ :type root: TreeNode :rtype: List[int] """ res = [] stack = [] while stack or root: # 不断往左子树方向走,每走一次就将当前节点保存到栈中,将左子节点压入栈 # 这是模拟递归的调用 if root:
2021-03-05 11:15:43
111
转载 二叉树所有模板
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None# 递归# 时间复杂度:O(n),n为节点数,访问每个节点恰好一次。# 空间复杂度:空间复杂度:O(h),h为树的高度。最坏情况下需要空间O(n),平均情况为O(logn).
2021-03-05 10:16:38
205
1
原创 SVM适合小数据量原因
SVM本质上是凸优化问题,看一下原理就应该知道**,如果增加的样本点只是无效约束,并不会影响其最后的结果。这也就是为什么SVM适合于小样本量数据集的原因**。**随样本量而使模型自身发生改变的,是统计推断。**最大似然,MAP,再到贝叶斯,每个都涉及到样本数prod的一项,这些方法建立的模才真正和样本数量有最直接的联系。...
2021-03-03 18:09:08
3668
1
原创 GBDT 负梯度 残差
我们通常说的GBDT去拟合残差是不全面的,是当损失函数是均方损失时,负梯度刚好是残差,残差只是特例。我们可以把 gbdt 的求解过程想象成线性模型优化的过程。 在线性模型优化的过程中。利用梯度下降我们总是让参数向负梯度的方向移动,使损失函数最小。现在来看 gbdt,假入我们现在有 t 课树,我们需要去学习是第 t+1 颗树,那么如何学习第 t+1 颗树才是最优的树呢? 这个时候我们参考梯度优化的思想。现在的 t 课树就是我们现在的状态使用这个状态我们可以计算出现在的损失。如何让损失更小呢?我们只需要让
2021-02-25 16:44:40
407
原创 SVM为什么要将原问题转换为对偶问题?
SVM 为什么要从原始问题变为对偶问题来求解首先是我们有不等式约束方程,这就需要我们写成min max的形式来得到最优解。而这种写成这种形式对x不能求导,这种形式只能对a求导,所以我们需要转换成max min的形式,这时候,x就在里面了,这样就能对x求导了。而为了满足这种对偶变换成立,就需要满足KKT条件(KKT条件是原问题与对偶问题等价的必要条件,当原问题是凸优化问题时,变为充要条件)。. 对偶问题将原始问题中的约束转为了对偶问题中的等式约束方便核函数的引入改变了问题的复杂度。..
2021-02-25 13:29:12
4940
3
原创 逻辑回归损失函数为啥不用最小二乘法
机器学习的损失函数是人为设计的,用于评判模型好坏(对未知的预测能力)的一个标准、尺子,就像去评判任何一件事物一样,从不同角度看往往存在不同的评判标准,不同的标准往往各有优劣,并不冲突。唯一需要注意的就是最好选一个容易测量的标准,不然就难以评判了。其次,既然不同标准并不冲突,那使用最小二乘作为逻辑回归的损失函数当然是可以,那这里为什么不用最小二乘而用最大似然呢?请看一下最小二乘作为损失函数的函数曲线:作者:茄子cheer链接:https://www.jianshu.com/p/699a13c9a253
2021-02-24 22:02:46
1090
1
原创 什么是参数模型(LR)与非参数模型(SVM)
什么是参数模型(LR)与非参数模型(SVM)?在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。链接:https://www.jianshu.com/p/dce9f1af7bc9...
2021-02-08 10:39:39
1755
原创 感知机/LR为线性模型,神经网络非线性
线性模型可以是用曲线拟合样本,但是分类的决策边界一定是直线的,例如logistics模型 区分是否为线性模型,主要是看一个乘法式子中自变量x前的系数w,如果w只影响一个x,那么此模型为线性模型。或者判断决策边界是否是线性的并不是用了非线性函数就是非线性模型!!LR,感知机均用了非线性函数,sigmoid,sign,但是线性分类器,因为他们的决策边界都只能是线性的,他们只能够处理线性可分的问题,无法处理非线性问题。神经网络是多个感知机组合,一个自变量X被多个W影响。激活函数确实可以产生非线性的变换
2021-02-08 10:00:00
577
原创 感知机(Perceptron)为什么不能表示异或(XOR)
异或之所以重要,是因为它相对于其他逻辑关系,例如与(AND), 或(OR)等,异或是线性不可分的。反证法简单理解,如果两个数a和b进行异或操作。如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。参考链接:https://www.jianshu.com/p/e79169493d75https://blog.csdn.net/bitcarmanlee/article/details/78770072...
2021-02-07 15:04:25
718
1
原创 超平面的法向量为什么是W
根据高数:AX+By+C=0则(A,B)是超平面的法向量。https://www.sohu.com/a/206572358_160850?spm=smpc.content.share.1.1612670476440jwHKMGt#comment_area
2021-02-07 12:21:01
1200
原创 伯努利分布的最大似然估计与贝叶斯估计
求概率模型的最大似然估计的一般步骤如下:写出随机变量的概率分布函数;写出似然函数;对似然函数取对数,并进行化简整理;对参数进行求导,找到似然函数的极值点;解似然方程。似然函数是一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:L(θ|x)=P(X=x|θ)。关于伯努利分布的贝叶斯估计参见https://blog.csdn.net/lynn_001/article/details/83904835?utm_medium=dist
2021-02-06 23:28:43
3480
原创 对数损失函数是如何度量损失的?
对于损失函数,像用平方损失函数 L(Y, f(X)) = (Y - f(X))^2或者绝对值损失函数都十分直观,但是对数损失函数 L(Y, P(Y|X)) = -log P(Y|X)是如何来度量损失的呢?在李航《统计学习方法第二版》11页中提到了一个模型分类方法:概率模型与非概率模型。平方损失和绝对值损失是对非概率模型而言的。如果是非概率模型,模型的输出大多数是实值,可以通过差值累积的方式作为损失函数(比如平方损失),但是对于概率模型,如果模型是条件概率分布,只能通过最大化样本出现的概率(最大似然的思想
2021-02-06 14:03:15
838
1
原创 百面机器学习 模型评估
Q1:准确率的局限性A1:当负样本占99%时, 分类器把所有样本都预测为负样本也可以获得99%的准确率。 所以, 当不同类别的样本比例非常不均衡时, 占比大的类别往往成为影响准确率的最主要因素。虽然模型的整体分类准确率高, 但是不代表对奢侈品用户的分类准确率也很高。为了解决这个问题, 可以使用更为有效的平均准确率(每个类别下的样本准确率的算术平均) 作为模型评估的指标。Q2:ROC曲线相比P-R曲线有什么特点相比P-R曲线, ROC曲线有一个特点, 当正负样本的分布发生变化时, ROC曲线的.
2021-02-05 21:50:01
83
原创 CBOW、Skip-gram理解
分布式词向量并不是word2vec的作者发明的,他只是提出了一种更快更好的方式来训练语言模型罢了。分别是:连续词袋模型Continous Bag of Words Model(CBOW)和Skip-Gram Model,这两种都是可以训练出词向量的方法,再具体代码操作中可以只选择其一,不过据论文说CBOW要更快一些。顺便说说这两个语言模型。统计语言模型statistical language model就是给你几个词,在这几个词出现的前提下来计算某个词出现的(事后)概率。CBOW也是统计语言模型的一种,
2021-02-05 18:16:14
333
原创 百面机器学习 特征工程
Q1:为什么需要对数值型特征进行归一化?A1:为了消除数据特征之间的量纲影响, 我们需要对特征进行归一化处理, 使得不同指标之间具有可比性。在实际应用中, 通过梯度下降法求解的模型通常是需要归一化的, 包括线性回归、 逻辑回归、 支持向量机、 神经网络等模型。 x1和x2的更新速度变得更为一致, 容易更快地通过梯度下降找到最优解。Q2:在对数据进行预处理时, 应该怎样处理类别型特征?序号编码,独热编码,二进制编码,目标编码。label encoding特征存在内在顺序 (ordinal featu
2021-02-05 14:25:53
78
转载 数据结构提纲
作者:CodingFish链接:https://zhuanlan.zhihu.com/p/107791804来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一、算法最最基础 1、时间复杂度 2、空间复杂度 二、基础数据结构 1、线性表 列表(必学) 链表(必学) 跳跃表(知道原理,应用,最后自己实现一遍) 并查集(建议结合刷题学习) 不用说,链表、列表必须,不过重点是链表。 2、栈与队列 栈(必学) 队列(必学) 优先队列、堆(必学) 多级反馈队列(原理与应用) 3、哈
2021-01-19 12:11:04
79
原创 零钱兑换问题 python 动态规划
参考官方第三种解法,自下而上https://leetcode-cn.com/problems/coin-change/solution/322-ling-qian-dui-huan-by-leetcode-solution/labuladong的动态规划做题思路https://leetcode-cn.com/problems/coin-change/solution/322-ling-qian-dui-huan-by-ac_fun-afrb/https://leetcode-cn.com/probl
2021-01-05 11:31:26
308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人