机器学习
Jerry_Chang31
欢迎交流指导,邮箱:changjunjie31@163.com
展开
-
KNN算法和KD树
一、KNN算法KNN(k-NearestNeighbor)(邻近算法,或者说K最近邻分类算法)是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近...原创 2020-01-15 12:12:28 · 510 阅读 · 0 评论 -
集成算法之Light GBM
一、Light GBMLight GBM是和xgboost类似的一种集成算法。xgboost算法的一个瓶颈是针对每个特征,它都需要对每一个可能的分裂点扫描全部的样本来计算基尼系数,这样大大增加了计算量,降低了算法效率。为了解决这种在大样本高纬度数据的环境下耗时的问题,Light GBM算法使用直方图方法在牺牲一定精度的条件下,换取计算速度的提升和内存的消耗;主要使用如下两种方法:一是GOSS(G...原创 2020-01-14 17:30:31 · 1609 阅读 · 0 评论 -
集成算法之GBDT和xgboost
大家知道,我们在进行建模时,会求解一个目标函数;目标函数又称代价函数,在机器学习中普遍存在,一般形式为:obj(θ)=L(θ)+Ω(θ)obj(\theta)=L(\theta)+\Omega(\theta)obj(θ)=L(θ)+Ω(θ);其中:L(θ)L(\theta)L(θ)为训练误差,衡量模型在训练集上的表现;Ω(θ)\Omega(\theta)Ω(θ)是正则化惩罚,衡量模型的复杂...原创 2020-01-06 18:32:40 · 395 阅读 · 0 评论 -
层次聚类(hierarchical clustering)和聚类模型评估(calinski-harabaz index)
层次聚类(Hierarcical Clustering)层次聚类是聚类算法中的一种,它通过计算不同类别数据点之间的相似度,来创建一颗有层次的嵌套聚类树,层次聚类的策略有两种:1.Agglomerative: 把每个点看成一个簇,合并这些相似的簇形成聚类;2.Divisive: 把所有的点看成一个簇,分解这些点到各自簇内形成聚类;Merge和Split使用的是贪婪的方式来进行计算的,所以非常...原创 2020-01-04 11:51:39 · 6602 阅读 · 3 评论 -
聚类算法之基于密度的聚类算法DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。DBSCAN算法最重要的两个参数是ε\varepsilonε和MinPtsMinP...原创 2020-01-03 20:17:47 · 830 阅读 · 0 评论 -
聚类算法之K-Means,K-Means++,elkan K-Means和MiniBatch K-Means算法流程
聚类问题是机器学习中无监督学习的典型代表,在数据分析、模式识别的很多实际问题中得到了应用。我们知道,分类问题是机器学习中最常见的一类问题,它的目标是确定一个物体所属的类别。分类问题和聚类问题一个最重要的区别在于分类问题有标签,学习过程实际就是程序不断学习各个标签特点的过程,而聚类问题是一种无监督学习问题,我们事先并不知道这些事物一共多少个类,每个事物的所属类别,我们需要让程序基于一定的规则,自动地...原创 2020-01-03 18:33:55 · 1608 阅读 · 0 评论 -
集成算法之Bagging和Boosting
集成算法,字面意思就是将单一的算法集成到一起。在集成算法中,主要有两种方法,即Bagging和Boosting。简单理解,Bagging算法: 就是独立地建立多个模型,各个模型之间互不干扰,然后将多个模型预测结果做平均,作为最终预测结果;Boosting算法: 有序的、依赖的建立多个模型,后一个模型用来修正前一个模型的偏差,以整体模型的预测结果作为最终预测结果。其实,在sklearn中,这些...原创 2020-01-03 17:10:19 · 692 阅读 · 0 评论 -
决策树模型之ID3算法、C4.5算法和CART算法
决策树模型是一种常用的有监督的学习模型,其主要用来解决分类问题,但是也可用来解决回归问题。信息熵和信息增益我们先来了解两个概念,信息熵与信息增益。信息熵信息熵用来表示事物的不确定性或不纯性,信息熵越大,则表示该事物的不确定性或不纯性越大。信息熵的公式为: H(x)=−∑i=1npilogpiH(x)=-\sum_{i=1}^{n}p_ilogp_iH(x)=−∑i=1npilogpi...原创 2019-12-31 12:31:58 · 1774 阅读 · 0 评论 -
线性回归linear regression梯度下降算法的python代码实现
#导入相关包import pandas as pdimport numpy as np#定义梯度下降函数,并传入x,y,迭代次数n_iterations,惩罚度alpha和学习率learning_ratedef gd(x,y,n_iterations,alpha,learning_rate): x = np.insert(x,0,1,axis=1) #在x中添加偏置项,并将其全部设为1...原创 2019-12-30 12:17:41 · 495 阅读 · 0 评论 -
逻辑斯蒂回归(logistic regression)的梯度下降算法
值得注意的是,逻辑回归(logistic regression)解决的是有监督的分类问题,而非回归问题。分类和回归的区别分类问题和回归问题的区别在于输出:分类问题的输出是离散型变量,如判断一个人是否得病,只有两种结果:得病或者不得病;而回归问题的输出为连续型变量,如预测一个人五年后的工资,它就可能是一个实数区间内的任意值。logistic和多重线性回归实际上,logistic回归和多重线性...原创 2019-12-30 02:15:03 · 3046 阅读 · 0 评论 -
线性回归(linear regression)的概率解释—使用极大似然估计推导线性回归问题
线性回归(linear regression)什么是线性回归?线性回归对一个或者多个自变量和因变量之间的关系进行建模的一种回归分析,线性回归模型应用于有监督的回归问题。线性回归模型为:y(i)=ΘT×x(i)+ε(i)y^{(i)}=\Theta ^{T}\times x^{(i)}+\varepsilon ^{(i)}y(i)=ΘT×x(i)+ε(i)其中 ϵ\epsilonϵ 代...原创 2019-12-30 00:00:13 · 1538 阅读 · 0 评论