
Machine Learning
文章平均质量分 84
机器学习常用样例
BIT_666
天道酬勤,厚积薄发
展开
-
Python - SnowNLP 情感分析与自定义训练
Python SnowNLP 情感分析与自定义训练示例。原创 2024-01-23 07:19:57 · 10443 阅读 · 7 评论 -
Spark LogisticRegression 线性回归总结
LogisticRegression 是机器学习中最常用的算法,这里根据使用情况总结了Spark LR的使用demo:Tip: 本文使用数据格式为Libsvm一.Lr线性回归推导与python实现在之前的博文已经介绍过 ,本文着重介绍spark使用https://blog.youkuaiyun.com/BIT_666/article/details/80415692二.数据样式:带tag 的libsvm0 29:1 30:76 74:1 77:1 78:0 79:330 9:1 ..原创 2020-05-27 17:02:37 · 1428 阅读 · 0 评论 -
Tensorflow - 拿捏 tf.nn.embedding_lookup && tf.nn.embedding_lookup_sparse
一.引言前面提到Wide & Deep中涉及到类别特征的 embedding,文中的 embedding 是由 Embedding 层得到,实际应用场景中,也可以从预训练的模型中加载已知 id 的 embedding,例如可以从矩阵分解获取 user-item 的向量,也可以通过 Word2vec 预训练的到语义的embedding 等等,embedding_lookup 相关函数可以看作是一个字典,给定对应特征的 id,从中获取 id 对应的 embedding 并做后续处理。二...原创 2021-05-20 18:05:16 · 1989 阅读 · 1 评论 -
深度学习 - 8.TF x Keras AutoEncoder 2D、3D 展示
一.引言:AutoEncoder-自编码是神经网络中常见的无监督学习,其目的一般为提取原始目标中的关键信息,类似于降维与主成分分析,但又不完全相同,其原理是用输入信息作为输出信息训练模型,最终提取中间的关键信息作为输入信息的抽象表达。二.实现:导入依赖:import numpy as npimport matplotlib.pyplot as pltfrom tensorflow.keras.datasets import mnistfrom tensorflow.keras.原创 2021-04-09 14:49:24 · 599 阅读 · 2 评论 -
SVM支持向量机-核函数python实现(7)
数据可视化上篇文章介绍了线性不可分和线性可分两种情况,以及五种核函数,线性核函数(linear),多项式核函数(poly),高斯核函数(rbf),拉普拉斯核函数(laplace)和Sigmoid核函数,基于《机器学习实战》的数据,我们使用各种核函数对数据尝试分类,下面看一下效果如何.首先看一下我们的数据集:.........原创 2018-04-19 23:52:12 · 21721 阅读 · 10 评论 -
集成学习-弱分类器与AdaBoost简介 西瓜书
1.集成学习现实情景中,一个学习器的泛化性能可能有局限,而集成学习则可以通过构造多个学习器来完成学习任务,有时也被称为多分类器系统,集成学习的大致步骤是先生成一组‘个体学习器’,然后基于某种策略将学习器结合起来,个体学习器同昌由现有的算法从训练数据产生,最常用的是决策树,还有神经网络1,支持向量机等。根据集成学习中分类器的类别来看,如果集成学习器中的个体学习器都是相同的,则称为‘同质’集成,对应的.........原创 2018-05-10 17:27:20 · 9757 阅读 · 4 评论 -
集成学习-AdaBoost更新准则推导 西瓜书
1.损失函数上一篇文章简单介绍了集成学习和弱学习器的理论概率,最后给出了AdaBoost的伪代码与实现步骤,思路比较清晰,这篇文章主要针对分类器的重要性α与分布权重Dt的更新规则进行推导.推导之前先看一下常见的损失函数(损失函数在SVM(3)里介绍过,这里只给出损失函数形式):.........原创 2018-05-11 14:32:58 · 2342 阅读 · 0 评论 -
集成学习-随机森林原理与实现 西瓜书
多样性增强在讲随机森林之前,先讨论一下多样性增强.在集成学习中需要有效的生成多样性大的个体学习器,与构造单一学习器对比而言,一般是通过在学习过程中引入随机性,常见的做法是对数据样本,输入属性,输出表示,算法参数进行扰动.1)数据样本扰动给定初始数据集,可从中产生生不同的数据子集,再利用不同的数据子集训练出不同的个体学习器.数据样本扰动是基于采样法,例如Bagging采用自助法采样,,对很多的常见基.........原创 2018-05-18 14:33:47 · 2389 阅读 · 2 评论 -
集成学习-AdaBoost实现 机器学习实战
AdaBoost实现前两篇文章针对AdaBoost的伪代码实现步骤进行了讨论,也对关键步骤的更新方法进行了推导,脑海里已经基本有了整体框架,有了基本框架,代码的含义就清晰易懂了,下面看看AdaBoost是如何串行生成一系列基学习器的.导入数据from numpy import *import matplotlib.pyplot as pltdef loadSimpData():#二维数据点,.........原创 2018-05-12 11:58:38 · 1016 阅读 · 0 评论 -
快速排序-提取排序索引 算法
引言上篇文章的运行结果会返回一个特征重要性列表,表示了一个预测分类问题中,各变量对分类的贡献程度,为了方便,我们需要将重要性排序,从而直观看的哪些是重要的特征,哪些是不重要的,其次,为了提高效率,有时我们需要的是特征对应的索引,而不是特征具体的值,例如我们需要首先知道是几号特征最重要,其次才需要知道它的重要性占比是多少,所以这篇文章主要介绍排序算法和返回索引.回顾[ 0.01711044 0.0......原创 2018-05-19 14:19:46 · 2617 阅读 · 1 评论 -
集成学习-Bagging原理与实现 西瓜书
Bagging简介Bagging是并行式集成学习的最著名代表,名字是由Bootstrap AGGregatING缩写而来,看到Bootstrap我们就会联想到boostrap的随机模拟法和它对应的样本获取方式,它是基于自助采样法(Boostrap sampleing),Bagging也是同理.给定包含m个样本的数据集,先随机抽取一个样本放入采样集中,再把该样本放回,使得下次采样时该样本仍有机会被选.........原创 2018-05-14 14:50:59 · 8995 阅读 · 4 评论 -
线性模型-线性回归与实现 西瓜书
线性模型给定d个属性描述的实例x = (x1,x2,...,xd),其中xi是x在第i个属性上的取值,线性模型想要学得一个通过属性的线性组合来进行预测的函数,即: 一般写成向量模型: .........原创 2018-05-23 11:27:30 · 1914 阅读 · 4 评论 -
线性模型-局部加权线性回归 机器学习实战
局部加权线性回归线性回归的一个问题是有可能出现欠拟合,因为它求的是具有最小均方误差的无偏估计,显然模型欠拟合将无法做出很好的回归预测,所以有些方法允许在估计中引入一些偏差,从而降低预测的均方误差。局部线性加权的思想是对待预测点附近的每个点赋予一个权重,然后在带权的样本上基于最小均方误差来进行回归.普通线性回归:......原创 2018-05-23 17:30:41 · 4399 阅读 · 0 评论 -
LASSO回归与L1正则化 西瓜书
1.结构风险与经验风险在支持向量机部分,我们接触到松弛变量,正则化因子以及最优化函数,在朴素贝叶斯分类,决策树我们也遇到类似的函数优化问题。其实这就是结构风险和经验风险两种模型选择策略,经验风险负责最小化误差,使得模型尽可能的拟合数据,而结构风险则负责规则化参数,使得参数的形式尽量简洁,从而达到防止过拟合的作用.所以针对常见模型,我们都有下式:.........原创 2018-04-23 19:29:57 · 17172 阅读 · 20 评论 -
SVM支持向量机-SKlearn实现与绘图(8)
了解了SVM的基本形式与算法实现,接下来用SKlearn实现支持向量机分类器.1.函数定义与参数含义先看一下SVM函数的完全形式和各参数含义:SVC(C=1.0,kernel=’rbf’,degree=3,gamma=’auto’,coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,class_w.........原创 2018-04-22 17:49:19 · 13884 阅读 · 7 评论 -
SVM支持向量机-核函数(6)
引言:前边几篇文章中提到的分类数据点,我们都假设是线性可分的,即存在超平面将样本正确分类,然而现实生活中,存在许多线性不可分的情况,例如“异或”问题就不是线性可分的,看一下西瓜书上的一个"异或"的例子,对于二维数据点,[0,0],[1,1]属于0类,[0,1],[1,0]属于1类,我们就无法用一条直线超平面将样本数据分类.线性可分-常规数据.........原创 2018-04-18 12:18:46 · 10073 阅读 · 4 评论 -
Logistic回归-实现(2)机器学习实战
上一篇文章我们对logistic回归分类的实现过程大致进行了了解,对书中的梯度上升法实现过程也进行了证明,下面就进入实践环节,看看logistic回归分类的实现过程。1.训练算法:使用梯度上升找到最优参数首先处理的是一些二维数据点的分类情况,数据对应的信息存在TestSet.txt文件中,下面让我们看一下具体的实现过程:from numpy import *def loadDa......原创 2018-04-01 11:13:48 · 594 阅读 · 0 评论 -
logistic回归-(sklearn)参数含义及实现(3)机器学习实战
经过前两篇的介绍,相信对logistic回归分类已经有一些了解了,下面我们用书上的例子,使用之前的代码和sklearn的库函数解决,看看效果怎么样。示例:从疝气疾病预测病马的死亡率1.书中代码实现这里先导入两个上篇文章的函数,分别是sigmoid函数和随机梯度上升法求最优权数的函数。def sigmoid(inX):#sigmoid函数 return 1.0/(1+exp(-in......原创 2018-04-02 13:39:57 · 4711 阅读 · 2 评论 -
SVM支持向量机-拉格朗日乘子与对偶问题(1)
对于支持向量机,我们首先要关注的几个点就是间隔,超平面,支持向量,再深入的话就是对偶问题,拉格朗日对偶问题,凸优化,和KKT条件,我们先从基本的间隔,超平面,支持向量说起。1.SVM基础模型给定训练集D={(x1,y1),(x2,y2)...(xn,yn)},yi∈{-1,1},例如下面图中的点,蓝线左上方的6个点对应1类,右下方的6个点对应-1类,基于数据分类的思想,如果我......原创 2018-04-09 17:06:43 · 26224 阅读 · 9 评论 -
SVM支持向量机-SMO算法公式推导(2)
1.SMO算法简介SMO算法又称序列最小优化,是John Platt发布的的一种训练SVM的强大算法,SMO算法的思想是将大的优化问题转换为多个小优化问题,这些小的优化往往很容易求解,并且对他们进行顺序求解和作为整体求解的结果是完全一致的。SMO算法的目标是求出一些列alpha和b,一旦求出alpha,我们的超平面w的系数便得到,我们就可以利用超平面来进行分类了。SMO算法的工作原理是每次循环中选......原创 2018-04-10 17:00:29 · 3592 阅读 · 2 评论 -
SVM支持向量机-《机器学习实战》SMO算法Python实现(5)
经过前几篇文章的学习,SVM的优化目标,SMO算法的基本实现步骤,模型对应参数的选择,我们已经都有了一定的理解,结合《机器学习实战》,动手实践一个基本的SVM支持向量机,来完成一个简单的二分类任务。建立模型之前,首先看一下我们的数据,然后再用支持向量机实现分类: 这里只截取部分,我们的数据是......原创 2018-04-16 14:57:59 · 3082 阅读 · 4 评论 -
SVM支持向量机-软间隔与松弛因子(3)
上一篇文章推导SMO算法时,我们通过导入松弛因子,改变了对偶问题的约束条件,这里涉及到软间隔和正则化的问题,我们一直假定训练样本是完美无缺的,样本在样本空间或特征空间一定是线性可分的,即存在一个超平面将不同类的样本完全划分开,然而现实中,数据往往不那么‘完美’,即使找到完美的它,我们也很难断定这里的线性可分是否存在过拟合。如何解决这个问题呢,允许支持向量机在一些样本上出错,这样我们便引入了软间隔:......原创 2018-04-11 11:46:06 · 2859 阅读 · 6 评论 -
朴素贝叶斯-分类及Sklearn库实现(2)机器学习实战
上一篇文章我们简单介绍了朴素贝叶斯的前提条件以及实现过程,并介绍了几个流行的朴素贝叶斯分类法,实现了最基本的文本分类,这篇文章将继续介绍朴素贝叶斯分类,这次主要通过垃圾邮件过滤的程序实现,深化贝叶斯分类的过程,并通过sklearn库实现上文中三种朴素分类器的效果,并比较几种朴素贝叶斯分类算法的准确性。 对于垃圾邮件过滤而言,我们首先要对邮件数据进行一定的处理,才能供算法使用,第一步是......原创 2018-03-28 15:12:56 · 1967 阅读 · 3 评论 -
朴素贝叶斯-分类及Sklearn库实现(1)机器学习实战
KNN,决策树两种算法都明确给出了“该数据实例到底属于哪一类”这类明确的回答,而这一篇讲到的朴素贝叶斯分类器,基于概率论的分类方法,将给出数据实例属于不同种类的概率(基于数据的后验概率),从而供我们选择一个最优的类别猜测结果。例如给定一组数据(x,y),可能的分类是C1,C2,这里我们基于之前给出的数据,求P(C1|x,y)和P(C2|x,y),比较两个概率的大小,判断(x,y)更可......原创 2018-03-26 21:30:14 · 4834 阅读 · 0 评论 -
决策树-原理与Sklearn库实现(2)机器学习实战
上篇文章对决策树的基本实现过程进行了了解,关键是几种不同的特征划分方式,sklearn的特点就是代码简单,编码比较简洁,而且使用起来很方便,在基本了解决策树的实现过程后,接下来我们用时下比较流行的Sklearn库实现决策树的建模与绘制。首先看一下sklearn的决策树建模与绘图效果,数据还是上一篇里最基础的判断是否为鱼的数据:from sklearn import treeimport ...原创 2018-03-23 15:57:57 · 1528 阅读 · 0 评论 -
决策树-原理与Sklearn库实现(1)机器学习实战
我们经常使用决策树处理分类问题,相比于其他分类算法,决策树算法的实现更加简单明了,而绘制出的决策树也能够轻松的看出数据隐含的内在信息,常用的决策树有CART树,ID3树,还有C4.5树,决策树的优点在于计算复杂度不高,输出结果易于理解,可以处理不相关特征数据,缺点是可能会产生过度匹配问题,因此建模完成后还经常需要剪枝或者在建模时对节点,深度进行一些限制,不过一般数据量不是很大时,这个问题暂...原创 2018-03-22 15:56:30 · 874 阅读 · 0 评论 -
KNN-原理与Sklearn库实现 机器学习实战
接触机器学习时间不长,最先接触的就是比较基础的KNN算法和手写数字识别,正好《机器学习实战》这本书第二章又讲到了手写数字识别,就写一些自己的心得体会,同时也要感谢同学的热心帮助。最先接触时,对KNN,Kmeans还不够深入了解,慢慢的才知道,KNN是有监督学习和Kmeans是无监督学习的区别。废话不多说,KNN算法又叫K-近邻算法,其分类思想是测量不同特征值之间的距离从而进行分类。K近...原创 2018-03-20 20:48:20 · 821 阅读 · 0 评论 -
SVM支持向量机-Alpha范围界定与调整(4)
SVM支持向量机-SMO算法推导(2)一文中我们写到了α2的范围选择,这里单独解释一下L,H的计算,和α2的调整规则。1.范围限定先看一下SMO算法推导那篇文章中α2的范围:依据简化约束,我们需要分两种情况讨论(其实是四种),y1=y2 和 y1≠y2:y1≠y2......原创 2018-04-12 14:38:26 · 3811 阅读 · 0 评论 -
Logistic回归-数学原理(1)机器学习实战
前言 :这篇主要讲logistic回归,虽然名字上是回归,但很多时候我们都将他用于分类,由于这一章公式比较多,而且第一次遇到了最优化算法,所以本文大部分会放在相关数学公式的证明和理解上,代码实现部分之后再补充。 先解释一下什么是回归,我们经常会接触到一些数据点,希望拟合一条直线或者曲线去近似他,从而预测其他未知变量的值,而这个拟合过程就称作回归。而logistic回归解决分类问题的主......原创 2018-03-30 11:59:56 · 1953 阅读 · 9 评论