
机器学习
文章平均质量分 82
织网者Eric
数据挖掘与分析,英语教育
展开
-
python机器学习手写算法系列——RANSAC(随机抽样一致)回归
本文旨在通过在最简单的一元一次方程中运用RANSAC,编写代码,来学习RANSAC算法。RANSAC算法RANSAC[1]算法,全程是Random Sample Consensus(随机抽样一致)。它采用迭代的方式从一组包含outliers的数据中估算出回归模型。RANSAC是一个非确定性算法,因为它是“随机抽样”的。它原来是计算机视觉的算法,后来被用来做线性回归。RANSAC回归用最少的数据点训练模型,基本算法总结如下:选取的最少的数据点,作为样本。用样本和基础回归器训练模型。根据ϵ\ep原创 2021-06-27 15:23:34 · 11349 阅读 · 2 评论 -
扩展Scikit-Learn -- EuroPython 2014 笔记
本文是EuroPython 2014 嘉宾 Florian Wilhelm 的讲座 《Extending Scikit-Learn with your own Regressor》的笔记。我写笔记是因为全部翻译比较费时间,而且很多英文句子翻译过来就很怪了。Theil Sen 回归嘉宾首先介绍了Scikit-learn和最小二乘法线性回归。这里,最小二乘法有个问题,它对异常值(Outliers)比较敏感。解决的方法是使用Theil Sen算法。Theil Sen算法的思想是。用斜率的中位数替换斜率的原创 2021-06-19 23:07:13 · 679 阅读 · 2 评论 -
如何用线性回归解南京外国语小学入学测试题:(
首先,请看题。这题里面有5组已知数据,和一组未知数据。我们把等号左右两遍用X和y表示,用四元线性回归解题。首先,我们导入需要用的库。import numpy as npimport sklearnfrom sklearn.linear_model import LinearRegression然后,构建X和yX = np.array([ [1,1,1,1], [1,2,8,9], [2,2,5,6], [3,3,8,8], [9,0,9,0]])原创 2021-06-01 22:53:23 · 793 阅读 · 12 评论 -
python机器学习手写算法系列——Gaussian Mixture Model (1d)
本文,就像本系列的其他文章一样。旨在通过阅读原论文+手写代码的方式,自己先把算法搞明白,然后再教其他人。手写代码除了可以验证自己是否搞明白以外,我会对中间过程做图。这样,我可以通过图直观的验证算法是否正确。而这些图,又成为写文章时候的很好的素材。什么是 Gaussian Mixture ModelGMM,简单的说,真的就是几个Gaussian分布混合在一起。把这些Gaussian分布找出来的过程,就是GMM。一般来说,可以认为GMM是聚类算法,但是scikit-learn把GMM把他放在了mixture原创 2021-01-09 12:51:33 · 2991 阅读 · 0 评论 -
python机器学习手写算法系列——CBLOF异常检测
我目前在做一些和异常检测相关的工作,并参加到了pyod里面的CBLOF算法的开发。所以,我对于CBLOF的论文以及pyod里面的实现都非常熟悉。对于手写算法系列的文章。有兴趣的可以研究一下代码。时间紧的也可以跳过代码不看。但是,即使你并不想看代码,也建议你来看我的文章。毕竟,我是实现了这些代码的,说明我自己首先理解了这些算法,我才好意思写文章。而且在实现的过程中,就像本文一样,可以把一些中间步骤都作图打印出来。异常检测异常检测一般来说是一种无监督学习的方法。他在没有标签的情况下,利用各种算法来区分正常原创 2020-09-20 23:05:40 · 3927 阅读 · 4 评论 -
python机器学习手写算法系列——KNN分类
现实当中,富人的邻居可能也是富人,穷人的邻居可能也是穷人。如果你的邻居都是富人,那么,你很可能也是富人。基于此,我们有了KNN算法。KNN的全名是K-Nearest Neighbors,即K个最近的邻居。他通过距离被预测点最近的K个邻居来预测被预测点。如下图所示,绿色的圆形是被预测点。它周围有红色三角和蓝色正方形。如果我们取K为3,那么,它的三个邻居是两个红色三角和一个蓝色正方形。因为它的邻居里面,最多的就是红色三角,所以我们预测它也是红色三角。(图一)首先,我们载入数据。这里我们以iris数据集为原创 2020-09-13 18:33:41 · 1115 阅读 · 1 评论 -
机器学习平台系列——XGB feature_names mismatch 问题解决方案
最近开发公司的机器学习平台的XGBoost控件。结果报了一个bug,说“feature_names mismatch”。以下代码复现了这个bug:import xgboost as xgbimport pandas as pdfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_splitX, y=make_classification(n_features=原创 2020-08-29 19:01:35 · 3520 阅读 · 3 评论 -
python机器学习手写算法系列——优化器 Optimizers
本文用一个很简单的一元线性回归问题为例,实现了梯度下降(SGD), Momentum, Nesterov Accelerated Gradient, AdaGrad, RMSProp and Adam.梯度下降我们首先回顾一下梯度下降,以本系列第一篇文章《python机器学习手写算法系列——线性回归》为例。目标函数:y=f(θ,x)y=f(\theta,x)y=f(θ,x)线性回归目标函数为:y=ax+b+εy=ax+b+εy=ax+b+εy^=ax+b\hat{y}=ax+by^=ax+原创 2020-08-16 20:38:39 · 3014 阅读 · 4 评论 -
分享通过tensorflow证书考试的经验
3月12日,TensorFlow框架的开发团队谷歌大脑发布了第一个TensorFlow开发者认证项目,全世界的TensorFlow开发人员都有机会获得官方证书了。6月9日,Daniel Bourke 在Youtube分享了他如何通过tensorflow考试的经验。我特地听了两遍,做了笔记,并分享给大家。Daniel他花了4周,通过了考试。这四周里,他每天花2,3个小时看书,另外2,3个小时写代码。为了考试,他做的第一件事情就是阅读考试手册。考试手册我找到了Tensorflow考试的官网,并下载了手原创 2020-06-13 23:16:12 · 6051 阅读 · 1 评论 -
Windows安装auto-sklearn
首先,我还是那句说了一万遍的话,安装任何程序,请以官方文档为准。那么,我们就去看看官方文档吧。https://automl.github.io/auto-sklearn/master/installation.html官方文档第一条就说,需要Linux系统。????没事,自然有逆天的方法给他装上去。因为我用WSL(Windows Subsystem for Linux)。安装WSL然后修改...原创 2020-04-21 15:51:46 · 6197 阅读 · 2 评论 -
python机器学习手写算法系列——GBDT梯度提升分类
梯度提升(Gradient Boosting)训练一系列的弱学习器(learners),每个学习器都针对前面的学习器的伪残差(而不是y),以此提升算法的表现(performance)。维基百科是这样描述梯度提升的梯度提升(梯度增强)是一种用于回归和分类问题的机器学习技术,其产生的预测模型是弱预测模型的集成,如采用典型的决策树 作为弱预测模型,这时则为梯度提升树(GBT或GBDT)。像其他提升......翻译 2020-04-19 21:18:45 · 4140 阅读 · 0 评论 -
AutoML简介
近年来机器学习有了大幅增长,自动化机器学习也有很大需求。本文将从传统机器学习和深度学习两个角度介绍。传统机器学习AutoMLCASHAutoML的范围很广,可以包括从自动数据分析,自动特征工程,自动缩放,自动正则化,自动特征选择,自动模型选择,自动超参数优化等等。目前的研究方向,主要集中在CASH[1],既Combined Algorithm Selection and Hyperparam...翻译 2020-04-09 00:20:01 · 7055 阅读 · 1 评论 -
python机器学习手写算法系列——贝叶斯优化 Bayesian Optimization
Bayesian Optimization 贝叶斯优化在无需求导的情况下,求一个黑盒函数的全局最优解的一系列设计策略。(Wikipedia)最优解问题最简单的,获得最优解的方法,就是网格搜索Grid Search了。如果网格搜索开销稍微有点大,可以尝试随机搜索Random Search。如果是凸函数Convex Function,我们可以用Gradient Descent。大量的机器学习算...原创 2020-03-29 18:10:33 · 8116 阅读 · 4 评论 -
python机器学习手写算法系列——PageRank算法
Page RankPage Rank 是谷歌搜索的网页排名算法。PageRank是以谷歌创始人Larry Page命名的。(只能说是个巧合,敢不敢叫Larry Rank)算法PageRank算法假设,一个用户在互联网上随机跳转到别的page。他要求用户最终到达某个page的概率。例子我找到的最好的例子就是下面这个:PageRank Algorithm - Example(YouTube...原创 2019-12-14 10:26:36 · 4895 阅读 · 0 评论 -
Windows安装xgboost gpu版
准备首先,安装cuda。我这里装的是10.0版,因为tensorflow现在要求10.0版。建议您安装xgboost gpu版的时候,注意看一下tensorflow的安装文档cudaVisual Studio 2017, 这个比较麻烦,我是在自己电脑上找到installer的。。。git for windowscmake下载源代码如果你在国外,请用这个命令下载git clone h...原创 2019-10-19 11:46:24 · 4784 阅读 · 0 评论 -
Python机器学习代码中的命名
在中国,计算机和英语分别属于文科和理科。程序员往往不关心英语。很多人都不知道,在写代码的时候。类名用的是名词,函数名用的是动词,布尔型变量用的是形容词。原创 2017-10-08 16:16:26 · 2157 阅读 · 3 评论 -
Python机器学习英文资源
《写给程序员的数据挖掘实践指南》 – Ron Zacharski《统计学习方法》-李航《机器学习》 – 周志华 重点推荐《机器学习实战》《统计学习基础》原创 2017-06-04 14:01:32 · 1345 阅读 · 0 评论 -
python机器学习手写算法系列——线性回归
本文致力于手把手教你实现一个最简单的机器学习模型--一元线性回归模型。短短的14行代码,就实现了。希望读完以后,你也能自己实现它。并对线性回归有更好的了解,或者从不了解到了解。原创 2019-05-06 19:51:29 · 84407 阅读 · 36 评论 -
一个公式告诉你为什么程序员要转算法工程师
今天(2017年6月11日)爬了某招聘网站的十大城市的算法工程师职位。算法工程师这里的算法工程师包括比较广泛。有做数据科学的,有做图形的,有做信号处理的。之后会统计更细分的领域。十大城市以下按照算法工程师的需求量,找出十大城市。因为算法工程师向大城市集中比较明显,所有这十大城市基本可以代表全国的算法工程师了。 城市 需求 城市 需求 北京 1048 成都 149 深原创 2017-06-11 18:20:23 · 97752 阅读 · 13 评论 -
python机器学习手写算法系列——决策树
本系列另一篇文章《线性回归》https://blog.youkuaiyun.com/juwikuang/article/details/78420337本文源代码地址:https://github.com/juwikuang/machine_learning_step_by_step你也可以直接看源代码,我用了jupyter notebook,源代码中有详细的说明。数据集数据来源于我的Github...原创 2019-04-16 15:39:51 · 12074 阅读 · 0 评论 -
python机器学习手写算法系列——kmeans聚类
从机器学习到kmeans聚类是一种非监督学习,他和监督学习里的分类有相似之处,两者都是把样本分布到不同的组里去。区别在于,分类分析是有标签的,聚类是没有标签的。或者说,分类是有y的,聚类是没有y的,只有X。所以,聚类只能根据X的特征本身,把样本分布到不同的组。比如,我们有个成语,叫物以类聚,人以群分。我们可以把人分成男人和女人,这里分组的根据是人本身的属性-性别。而性别是知道的,而不需要用一...原创 2019-05-24 14:01:22 · 9489 阅读 · 5 评论 -
python机器学习手写算法系列——逻辑回归
从机器学习到逻辑回归今天,我们只关注机器学习到线性回归这条线上的概念。别的以后再说。为了让大家听懂,我这次也不查维基百科了,直接按照自己的理解用大白话说,可能不是很严谨。机器学习就是机器可以自己学习,而机器学习的方法就是利用现有的数据和算法,解出算法的参数。从而得到可以用的模型。监督学习就是利用已有的数据(我们叫X,或者特征),和数据的标注(我们叫Y),找到x和y之间的对应关系,或者说是函...原创 2019-05-18 21:19:06 · 11543 阅读 · 4 评论 -
python机器学习手写算法系列——梯度提升回归
Prerequisite 必备的知识要理解GBDT,首先要理解DT和线性回归。可以参考一下文章:《python机器学习手写算法系列——线性回归》《python机器学习手写算法系列——决策树》概述GBDT全称Gradent Boosting Decision Tree, 也叫Gradient Boosting Tree。GBDT是一种ensemble方法。所以如果你使用sklearn,可...翻译 2019-09-08 11:44:16 · 6473 阅读 · 2 评论 -
Windows安装Tensorflow GPU版
今天在Windows 10 / Anaconda 3.5下面装了Tensorflow1.2。其实安装主要就是参考官方文档https://www.tensorflow.org/install/install_windows我试了在python3.6下安装,结果失败了。还是老老实实的按照官方说明去装吧。其中,cudnn的安装方法是将cudnn下面的三个文件夹(bin,include, lib)复制到cu原创 2017-06-16 14:04:40 · 2830 阅读 · 0 评论