![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习实战
会飞的小罐子
有趣的灵魂万里挑一
展开
-
关于python的机器学习与数据挖掘的相关的包
数据库类别 Python R MySQL mysql-connector-python(官方) RMySQL Oracle cx_Oracle ROracle Redis redis rredis MongoDB pymongo RMongo, rmongodb neo4j py2neo RNeo4j...原创 2018-08-28 13:33:10 · 707 阅读 · 0 评论 -
机器学习:线性判别式分析(LDA)
1.概述 线性判别式分析(Linear Discriminant Analysis),简称为LDA。也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域。 基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空...转载 2018-06-01 10:01:39 · 1718 阅读 · 0 评论 -
机器学习:以二元决策树为基学习器实现梯度提升算法的回归分析
1.前言 前面提到的算法都是通过一个函数来拟合数据解决问题,也就是单个机器学习算法,与其相对的还有多个机器学习算法,即:集成方法。 集成方法来源:如果模型之间近似相互独立,则多个模型联合的性能要优于单个模型。大致上可以分成两类:(一)把几种不同的机器学习算法集合到一起(二)把一种算法的不同参数组合起来。 集成方法由两层算法组成。底层的算法叫基学习器或...转载 2018-06-01 09:57:51 · 603 阅读 · 0 评论 -
机器学习:以分析红酒口感为例说明交叉验证的套索模型
在线性回归问题中比较常用的一种算法就是最小二乘法(OLS),其核心思想是:通过最小化误差的平方和寻找数据的最佳函数匹配。但是普通的OLS最常见的一个问题是容易过度拟合:即在样本数据集上属性值(x)和目标值(y)是一一对应的。这样的结果看似拟合效果很好,但是在新数据集上的误差却会很大。 解决这个问题,目前主要有两种思路:前向逐步回归和惩罚线性回归。之所以说是两种思路,而不是两种算法,是因...转载 2018-06-01 09:55:10 · 1039 阅读 · 0 评论 -
机器学习:从编程的角度去理解逻辑回归
先从一本书说起吧----《机器学习实战》 作者在书中讲到逻辑回归的时候,用简短的语言介绍了一下理论之后,就给出了一段代码。然而就是这段代码把我带进了误区,也许不能叫误区,而是因为我自己的水平不够。后来在查阅资料的时候,发现有人也因为这个问题纠结了好久。也许这本书是写给一些有经验的人员看的,不是特别适合作为入门的书。 在查找关于逻辑回归相关资料的时候,发现大多数都是介绍了好多...转载 2018-06-01 09:49:40 · 222 阅读 · 0 评论 -
机器学习:分类算法性能指标之ROC曲线
在介绍ROC曲线之前,先说说混淆矩阵及两个公式,因为这是ROC曲线计算的基础。1.混淆矩阵的例子(是否点击广告): 说明: TP:预测的结果跟实际结果一致,都点击了广告。 FP:预测结果点击了,但是真实情况是未点击。 FN:预测结果没有点击,但是真实情况是点击了。 TN:预测结果没有点击,真实情况也是...转载 2018-06-01 09:44:58 · 1222 阅读 · 0 评论 -
机器学习:python中如何使用朴素贝叶斯算法
这里再重复一下标题为什么是"使用"而不是"实现": 首先,专业人士提供的算法比我们自己写的算法无论是效率还是正确率上都要高。 其次,对于数学不好的人来说,为了实现算法而去研究一堆公式是很痛苦的事情。 再次,除非他人提供的算法满足不了自己的需求,否则没必要"重复造轮子"。 下面言归正传,不了解贝叶斯算法的可以...转载 2018-06-01 09:40:14 · 387 阅读 · 0 评论 -
机器学习:以二元决策树为基学习器实现随机森林算法的回归分析
声明:本文是站在回归分析角度讲的,分类的理解可能跟这有点不一样。1.前言 随机森林也是集成方法的一种,是对Bagging算法的改进。 随机森林主要有两步组成: 1)有放回的随机抽取样本数据,形成新的样本集。这部分和Bagging算法一样,但是有两点需要注意: a)新的样本集的大小和原始样本集的大小是一样的。假如原始样本有1000个数...转载 2018-06-01 09:33:52 · 584 阅读 · 0 评论 -
机器学习:浅析使用二元决策树进行回归分析
1.引言 学过数据结构的同学对二叉树应该不陌生:二叉树是一个连通的无环图,每个节点最多有两个子树的树结构。如下图(一)就是一个深度k=3的二叉树。 (图一) (图二) 二元决策树与此类似。不过二元决策树是基于属...转载 2018-06-01 09:29:36 · 619 阅读 · 0 评论 -
机器学习:随机梯度下降法
1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降。 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方。但是因为选择方向的原因,我们找到的的最低点可能不是真正的最低点。如图所示,黑线标注的路线所指的方向并不是真正的地方。 既然是选择一个方向下山,那么这个方向怎么选...转载 2018-06-01 10:04:49 · 79423 阅读 · 6 评论 -
机器学习:特征选择
1.特征选择 特征选择是降维的一种方法,即选择对预测结果相关度高的特征或者消除相似度高的特征,以提高估计函数的准确率或者提高多维度数据集上的性能。 2.删除低方差特征 1)思路:设置一个阀值,对每个特征求方差,如果所求方差低于这个阀值,则删除此特征。默认情况下会删除0方差。 2)核心函数 sklearn.feature_sele...转载 2018-06-02 11:03:44 · 696 阅读 · 0 评论 -
PyML(一)——感知机模型
本节介绍分类算法一:感知机模型perceptron_class.py:# -*- coding: utf-8 -*-# @Time : 2018/7/16 17:30# @Author : Alan# @Email : xiezhengwen2013@163.com# @File : perceptron_class.py# @Software: PyChar...原创 2018-07-16 19:57:41 · 733 阅读 · 0 评论 -
kmeans,k-medoids,DBSCAN聚类(密度聚类)
在实习的时候,做的基本上都是没有类标的数据,这让经常在实验室用带类标的数据做实验的我很是头疼。主要是为了熟悉聚类的一些方法,下面介绍聚类以及相应的实现方法,大部分都是别人写的,只是看过后收集整理。什么是聚类?聚类简单的说就是要把一个文档集合根据文档的相似性把文档分成若干类,但是究竟分成多少类,这个要取决于文档集合里文档自身的性质。下面这个图就是一个简单的例子,我们可以把不同的文档聚合为3类...原创 2018-08-28 11:25:19 · 5815 阅读 · 0 评论 -
极大似然估计与最大后验概率估计
前言不知看过多少次极大似然估计与最大后验概率估计的区别,但还是傻傻分不清楚。或是当时道行太浅,或是当时积累不够。这次重游机器学习之路,看到李航老师《统计学习方法》中第一章关于经验风险最小化与结构风险最小化时谈到了极大似然与最大后验的话题,第一反应是竟然在第一章就谈到了极大似然与最大后验,相信大部分初学者看到这两个词时还是怕怕的,毕竟没有太多理论基础。不过没关系,多积累,多搜集相关资料,相信...转载 2018-08-16 22:01:36 · 767 阅读 · 0 评论 -
Tableau Desktop Pro中文破解版
Tableau Desktop Pro中文破解版是一款专业的数据分析软件,如今Tableau 10已经推出,在界面上,开发团队重新考量了界面中的每一个元素,精心设计的新调色板可在复杂的可视化中确保形状感知均衡,并在需要时突出相关内容。新版本以数据为中心进行设计,数据集成有助于人人将尽可能多的时间用于分析,借助拖放群集之类的创新性数据分析功能,任何人可以在无需编程的情况下对自己的数据执行更多高级分析...原创 2018-08-15 17:33:18 · 22245 阅读 · 6 评论 -
PyML(六)——用sklearn训练KNN模型
首先介绍下参数模型和变参模型机器学习算法可以被分为两大类:参数模型和变参模型。对于参数模型,在训练过程中我们要学习一个函数,重点是估计函数的参数,然后对于新数据集,我们直接用学习到的函数对齐分类。典型的参数模型包括感知机、逻辑斯蒂回归和线性SVM。对于变参模型,变参模型中的参数个数不是固定的,它的参数个数随着训练集增大而增多!很多书中变参(nonparametric)被翻译为无参模型...原创 2018-07-25 17:07:21 · 4056 阅读 · 0 评论 -
PyML(三)——用sklearn训练logistic模型
数据集为iris数据集,可以重点关注lr.coef_# -*- coding: utf-8 -*-# @Time : 2018/7/19 10:53# @Author : Alan# @Email : xiezhengwen2013@163.com# @File : logistic_sk1.py# @Software: PyCharmfrom sklearn...原创 2018-07-19 15:28:00 · 805 阅读 · 0 评论 -
PyML(五)——用sklearn训练决策树模型
1.决策树没什么好说的,可以用graphviz(dot命令)画流程图# -*- coding: utf-8 -*-# @Time : 2018/7/24 9:13# @Author : Alan# @Email : xiezhengwen2013@163.com# @File : decision tree_sk1.py# @Software: PyCharm...原创 2018-07-24 11:10:08 · 3231 阅读 · 0 评论 -
PyML(二)——用sklearn训练感知机模型
# -*- coding: utf-8 -*-# @Time : 2018/7/17 20:39# @Author : Alan# @Email : xiezhengwen2013@163.com# @File : perceptron_sk1.py# @Software: PyCharmfrom sklearn import datasetsimport nu...原创 2018-07-18 08:59:46 · 1236 阅读 · 0 评论 -
PyML(四)——用sklearn训练SVM模型
SVM可以看作是感知机的扩展。在感知机算法中,我们最小化错误分类误差。在SVM中我们的优化目标是最大化间隔。间隔定义为两个分隔超平面(决策界)的距离。1.用松弛变量解决线性可分的情况(软间隔)需要调节的主要参数:C使用变量C,我们可以控制错分类的惩罚量。和logistics不同的是,C越大,对于错分类的惩罚越大。可以通过C控制间隔的宽度,在bias-variance之间找到某种平衡。...原创 2018-07-23 15:26:07 · 9492 阅读 · 2 评论 -
机器学习之分类器性能指标之ROC曲线、AUC值
分类器性能指标之ROC曲线、AUC值一 roc曲线1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)纵轴:真正类率(true postive rate TPR)灵敏度...转载 2018-05-28 16:02:24 · 1374 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之AdaBoost算法公式推导和例子讲解(一)
最近在看集成算法AdaBoost,推荐先看李航的统计学习方法第8章,然后再看机器学习实战第7章,李航的书上的公式推导讲的很详细了,但是很多地方对于初学者来说,还是需要时间去理解和消化的。本文将从以下几个方面来介绍AdaBoost算法。一、AdaBoost算法公式推导二、AdaBoost相关例子讲解三、AdaBoost的toy algorithm的python实现四、启发和思考“为什么”,“如何做”...原创 2018-05-28 11:09:19 · 1885 阅读 · 1 评论 -
协同过滤算法之UserCF算法的python实现及部分优化
1:协同过滤算法简介2:协同过滤算法的核心3:协同过滤算法的应用方式4:基于用户的协同过滤算法实现5:UserCF中相似度计算部分优化一:协同过滤算法简介 基于用户的协同过滤算法是推荐系统中最古老的的算法,可以说是这个算法的诞生标志了推荐系统的诞生。该算法在1992年被提出,并应用于邮件过滤系统,1994年被GroupLens用于新闻过滤。 在一个在线个性化推荐系统中,当一个用户A需要个性化推...原创 2018-03-13 16:38:25 · 5545 阅读 · 3 评论 -
推荐算法的Python实现(样例代码)
基于ItemCF算法#!/usr/sbin/env python# -*- coding:utf-8 -*-import math# ItemCF算法def ItemSimilarity(train): C = dict() N = dict() for u,items in train.items(): for i in items.keys(...转载 2018-03-12 14:56:16 · 5598 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之KNN算法(四)
构建完整的可用系统,即书上的约会网站测试直接贴出代码:from numpy import *import knn1def file2matrix(filename): """该函数将约会文件内容转换成数据处理格式,返回一个测试特征集(格式二维数组),和测试集类别集(格式列表) """ fr = open(filename) arrayOnLines = f...原创 2018-02-24 17:20:07 · 208 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之KNN算法(三)
本次读书笔记在于延续上一篇博客的工程,做出微小的改动,即使用Matplotlib创建散点图(散点图使用DataMat矩阵的第一、第二列数据)。首先还是介绍一个相关知识点,方便代码浏览。知识点一:1、在使用Matplotlib生成图表时,默认不支持汉字,所有汉字都会显示成框框。解决方法:代码中指定中文字体# -*- coding:utf-8 -*-importmatplotlib.pyplot as...原创 2018-02-24 17:13:35 · 213 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之KNN算法(二)
本次读书笔记在于实现书上的从文本解析数据,使用Matplotlib创建散点图(散点图使用DataMat矩阵的第二、第三列数据),分类器针对约会网站的测试等首先介绍几个相关知识点,方便代码浏览。知识点一:1.对于高维数组,索引位置上的元素不再是标量而是低一维的数组,比如:[python] view plain copy1. arr2d = np.array([[1,2,3],[4,5,6],[7,...原创 2018-02-24 16:52:56 · 225 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之KNN算法(一)
首先介绍knn算法用到的numpy的几个知识点:1.shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。举例说明:建立一个4×2的矩阵c, c.shape[0] 为第一维的长度,c.shape[1] 为第二维的长度。>>> c = array([[1,1],[1,2],[1,3],[1,4]]) >>> c....原创 2018-02-05 17:18:54 · 194 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之DecisionTree(ID3算法)(一)
本文介绍决策树ID3(Iterative Dichotomiser)算法,除此之外决策树还有C4.5,CART(Classification And Regression Tree)算法。一、ID3算法介绍:1.ID3算法是以信息熵和信息增益作为衡量标准的分类算法。2.ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法, 即Iterative Dic...原创 2018-03-03 10:39:49 · 394 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之DecisionTree(ID3算法)(三)
一.使用决策树预测隐形眼镜类型这里实现一个例子,即利用决策树预测一个患者需要佩戴的隐形眼镜类型。以下是整个预测的大体步骤:收集数据:使用书中提供的小型数据集准备数据:对文本中的数据进行预处理,如解析数据行分析数据:快速检查数据,并使用createPlot()函数绘制最终的树形图训练决策树:使用createTree()函数训练测试决策树:编写简单的测试函数验证决策树的输出结果&绘图结果使用决...原创 2018-03-09 11:17:15 · 356 阅读 · 0 评论 -
推荐算法之用户推荐(UserCF)和物品推荐(ItemCF)对比
一、定义UserCF:推荐那些和他有共同兴趣爱好的用户喜欢的物品ItemCF:推荐那些和他之前喜欢的物品类似的物品根据用户推荐重点是反应和用户兴趣相似的小群体的热点,根据物品推荐着重与用户过去的历史兴趣,即:UserCF是某个群体内的物品热门程度ItemCF是反应本人的兴趣爱好,更加个性化二、新闻类网站采用UserCF的原因:用户大都喜欢热门新闻,特别细粒度的个性化可忽略不计个性化新闻推荐更强调热...转载 2018-03-13 16:55:06 · 1225 阅读 · 0 评论 -
推荐系统的常见推荐算法的性能比较
数据集是movielens-1M(下载)版本。1. 训练集大小对于推荐性能的影响使用SlopeOne算法,每次随机选取6%的用户预测其喜好,进行5次实验,取MAE的均值,得到下表: 训练集大小(%)MAE900.71718149700.73005925500.77483222300.83092947100.98020104 绘制成折线图,如下图所示: 由此可知,训练集越大,则推荐的准确率越高。 ...转载 2018-03-13 16:59:25 · 4457 阅读 · 1 评论 -
协同过滤算法之欧几里得距离,皮尔逊相关度
协作型过滤协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。协同过滤一般是在海量的用户中发掘出一小部分和你品位比...转载 2018-03-13 17:05:51 · 3790 阅读 · 0 评论 -
GBDT(Gradient Boosting Decision Tree)入门(一)
1.简介 gbdt全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是即可以用于分类也可以用于回归。三是可以筛选特征。这三点实在是太吸引人了,导致在面试的时候大家也非常喜欢问这个算法。 gbdt的面试考核点,大致有下面几个:gbdt 的算法的流程?gbdt 如何选...转载 2018-05-16 21:52:19 · 7550 阅读 · 3 评论 -
GBDT(Gradient Boosting Decision Tree)入门(二)
看了很多博客,发现很多都是讲的不是很清楚的,早上看到简书上的一篇文章,算是讲的很仔细了,从逻辑上来说可以说是很缜密了,建议将这篇文章和李航的统计学习方法一起看,效果更佳!GBDT是机器学习面试中的常客,但是,要准确地说出它的原理却并不容易,除了掌握DT基本知识外,还要掌握加法模型、前向分步算法、梯度提升思想,本文是对这些知识点的一个简单总结,请各路大神指正。为了提高写作效率,文中公式都是手写,美观...转载 2018-05-18 20:28:12 · 320 阅读 · 0 评论 -
多元函数的泰勒展开式
多元函数的泰勒展开式 本博客整理自:http://blog.csdn.net/red_stone1/article/details/70260070。并在一些地方做出修改。 实际优化问题的目标函数往往比较复杂。为了使问题简化,通常将目标函数在某点附近展开为泰勒(Taylor)多项式来逼近原函数。 把泰勒展开式写成矩阵的形式: 其中:...转载 2018-05-18 15:33:33 · 11993 阅读 · 3 评论 -
【机器学习实战系列】读书笔记之朴素贝叶斯(一)
本文从以下几个方面来介绍:一、贝叶斯和朴素贝叶斯二、文本分类运用三、文本分类算法思路四、算法实现五、总结======================================================================一、贝叶斯和朴素贝叶斯1.基于贝叶斯的分类 2.朴素贝叶斯法二、文本分类应用文本数据的一个典型特征就是其维度较大,比如一篇文档,会有几千甚至上万个词,...原创 2018-04-04 15:26:21 · 326 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之利用PCA简化数据(一)
一,引言 降维是对数据高维度特征的一种预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。 降维具有如下一些优点:(1)使得数据集更易使用(2)降低算法的计算开销(3)去除噪声(4)使得结果容易理解 PCA(p...转载 2018-04-11 16:10:59 · 238 阅读 · 0 评论 -
【机器学习实战系列】读书笔记之利用SVD简化数据(一)
本文详细说明机器学习实战这本书中的示例:餐厅菜肴推荐引擎的算法5.1 推荐未尝过的菜肴推荐系统的工作过程是:给定一个用户,系统会为此用户返回N个最好的推荐菜。为了实现这一点,则需要做到:寻找用户没有评级的菜肴,即在用户-物品矩阵中的0值;在用户没有评级的所有物品中,对每个物品预计一个可能的评级分数。这就是说,我们认为用户可能对物品的打分(这就是相似度计算的初衷);对这些物品的评分从高到底进行排序,...原创 2018-04-10 17:12:21 · 404 阅读 · 1 评论 -
UserCF和ItemCF详细对比
本文内容主要是基于项亮的《推荐系统实践》一书,加上自己一些总结和心得。UserCF推荐和当前用户相似度高的N个用户产生过行为的物品给当前用户;这些物品是当前用户没有行为过而其他N个用户行为过的物品的前M个;余弦相似度改进:在分子中除了考虑两个用户共同行为的物品,还考虑到这个物品被多少个用户行为过。 加入时间因子:相似度计算:用户u和用户v对物品i产生行为的时间越远,那么这两个用户的兴趣相似度就会...转载 2018-03-13 17:12:27 · 1432 阅读 · 0 评论