kmeans

Python数据预处理:彻底理解标准化和归一化

旧城冷巷雨未停 提交于 2020-08-17 05:01:01
数据预处理 数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析。 常用的方法有两种: 最大 - 最小规范化:对原始数据进行线性变换,将数据映射到[0,1]区间 Z-Score标准化:将原始数据映射到均值为0、标准差为1的分布上 为什么要标准化/归一化? 提升模型精度:标准化/归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。 加速模型收敛:标准化/归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。 如下图所示: 哪些机器学习算法需要标准化和归一化 1)需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。 2)概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。 彻底理解标准化和归一化 示例数据集包含一个自变量(已购买)和三个因变量(国家,年龄和薪水)

K-means:无监督聚类的经典算法

主宰稳场 提交于 2020-08-14 02:29:55
K-means:无监督聚类的经典算法 作者:郑培 无监督学习 是一类用于在数据中寻找模式的机器学习技术。无监督学习算法使用的输入数据都是没有标注过的,这意味着数据只给出了输入变量(自变量 X)而没有给出相应的输出变量(因变量)。在无监督学习中,算法本身将发掘数据中有趣的结构。在 监督学习 中,系统试图从之前给出的示例中学习。(而在无监督学习中,系统试图从给定的示例中直接找到模式。)因此,如果数据集被标注过了,这就是一个监督学习问题;而如果数据没有被标注过,这就是一个无监督学习问题。 聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x。 K-means 是我们最常用的基于欧式距离的聚类算法 ,它是 数值的 、非监督的、 非确定的 、 迭代的 ,该算法旨在最小化一个目标函数——误差平方函数(所有的观测点与其中心点的距离之和),其认为两个目标的距离越近,相似度越大,由于具有出色的速度和良好的可扩展性,Kmeans聚类算法算得上是最著名的聚类方法。本文将带大家回顾K-means算法的理论内涵以及初始化优化K-Means++方法。 本文的项目实例实现在Momodel平台上,可以边看边学哦! mo平台项目地址: https://momodel.cn/workspace

我心中控制科学与工程中的最美公式

醉酒当歌 提交于 2020-08-11 14:23:03
前言 前些年网络上流行了物理学最美妙的十大公式,感觉很有意思,看到美好的事物是一件赏心悦目的事情。本人学习控制科学与工程已经十年了,虽然不能说登堂入室,总归有一些心得。突然也想总结一下我心中控制科学与工程中最美的公式,本人才学和学科见识有限,欢迎探讨不同观点。 No.1 pid控制 pid控制是自动化专业的看家本领,百分之九十以上的工业控制都是pid控制算法,这个说法一点也不假,无须多言,必须是排名第一的公式。 No.2 状态空间方程 状态空间方程是现代控制理论的基石,只有把物理系统建模成状态空间方程后,才能应用现代控制理论对其进行控制,其重要性不言而喻。 No.3 卡尔曼滤波方程 卡尔曼滤波用途之广同样无须多言,其重要性至少是控制领域前三。 No.4 最优控制 最优控制即在满足一定约束的情况下,寻求最优控制策略,使得性能指标取极大值或极小值,如能量消耗最小,时间最短等。 No.5 滑模控制 滑动模态可以设计且与对象参数和扰动无关,具有快速响应、对参数变化和扰动不灵敏( 鲁棒性)、无须系统在线辨识、物理实现简单。 后记: 其实一开始也是想总结控制科学与工程十大最美公式,以上五个公式只是纯粹控制领域的公式,但是控制科学与工程还包含计算机视觉,机器人学;语音信号处理,人工智能,运筹学等领域,还有很多精妙的公式。如信号处理常用的傅里叶变换,拉普拉斯变换,卷积相乘等

C++机器学习库介绍

99封情书 提交于 2020-08-07 18:49:08
作者|ALAKH SETHI 编译|VK 来源|Analytics Vidhya 介绍 我喜欢使用C++。C++是我学习过的第一种编程语言,我喜欢在机器学习中使用它。 我在之前写过关于构建机器学习模型的文章。我收到了一个回复,问我C++有没有机器学习的库? 这是个公平的问题。像Python和R这样的语言有大量的包和库来满足不同的机器学习任务。那么C++有没有这样的产品呢? 是的,是的!在本文中,我将重点介绍两个这样的C++库,我们也将看到它们都可以运行。 目录 为什么我们要使用机器学习库? C++中的机器学习库 SHARK 图书馆 MLPACK库 为什么我们要使用机器学习库? 这是很多新来者都会遇到的问题。库在机器学习中的重要性是什么?让我试着在这一节解释一下。 比如说,经验丰富的专业人士和行业老手已经付出了艰辛的努力,并想出了解决问题的办法。你更愿意使用它,还是愿意花几个小时从头开始重新创建相同的东西?后一种方法通常没有什么意义,尤其是当你在DDL前的工作或学习。 我们的机器学习社区最大的优点是已经有很多解决方案以库和包的形式存在。其他一些人,从专家到爱好者,已经做了艰苦的工作,并将解决方案很好地打包在一个库中。 这些机器学习库是有效的和优化的,它们经过了多个用例的彻底测试。依靠这些库,我们的学习能力和编写代码,无论是在C++或Python,都是如此的简单和直观。 C+

Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略

只愿长相守 提交于 2020-08-04 17:43:42
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略 目录 imblearn/imbalanced-learn库的简介 imblearn/imbalanced-learn库的安装 imblearn/imbalanced-learn库的使用方法 imblearn/imbalanced-learn库的简介 imblearn/imbalanced-learn是一个python包,它提供了许多重采样技术,常用于显示强烈类间不平衡的数据集中。它与scikit learn兼容,是 scikit-learn-contrib 项目的一部分。 在python3.6+下测试了imbalanced-learn。依赖性要求基于上一个scikit学习版本: scipy(>=0.19.1) numpy(>=1.13.3) scikit-learn(>=0.22) joblib(>=0.11) keras 2 (optional) tensorflow (optional) imblearn/imbalanced-learn库的安装 pip install imblearn pip install imbalanced-learn pip install -U imbalanced-learn conda install -c conda-forge

九月十月百度,迅雷,华为,阿里巴巴笔试面试六十题(第411~470题)

孤街浪徒 提交于 2020-08-04 10:05:24
九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9、10月份陪伴了至少三届毕业生找工作的旅程,包括校招中的笔试面试,今年也不会例外,我会在本博客开通3周年之际一如既往的陪伴大家一起成长。 本文所整理的全部笔试面试题要么来源于我群内群友们的分享,要么摘自论坛或博客,所有原题均来自网络。虽然本文中整理的绝大部分笔试面试题偏算法( 自己特意为之之故 ),但不论是哪一年的校招,一般说来,笔试偏 基础 ( 尤其是选择题部分,涵盖语言,计算机组成原理、操作系统、网络协议、数据库、概率期望等知识 ),而面试则偏算法( 且极具针对性的根据 简历 提问 ),且无论是笔试还是面试,两者都很看重你的实际 编程能力 ,希望大家知晓。 OK, 本文会尽量保持每天更新一道新的笔试或面试题,直到校招基本结束( 更欢迎各位通过微博私信 http://weibo.com/julyweibo ,或邮箱 zhoulei97@aliyun.com 提供题目,亦可直接评论于本文下 ),如果大家对以下任何一题中有任何思路,包括参考题解中有任何错误,欢迎随时评论于本文之下,或 show me your code !谢谢。 九月迅雷,华为,阿里巴巴,最新笔试面试十题 8月15日,百度2道面试题: 1、来自《编程之美

数据挖掘的10大算法我用大白话讲清楚了,新手一看就懂

筅森魡賤 提交于 2020-07-28 20:39:22
一个优秀的数据分析师,除了要掌握基本的统计学、数据库、数据分析方法、思维、数据分析工具技能之外,还需要掌握一些数据挖掘的思想,帮助我们挖掘出有价值的数据,这也是数据分析专家和一般数据分析师的差距之一。 数据挖掘主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求。而这三类里又包含许多经典算法。市面上很多关于数据挖掘算法的介绍深奥难懂,今天就给大家用简单的大白话来介绍数据挖掘十大经典算法原理,帮助大家快速理解。 算法分类 连接分析:PageRank 关联分析:Apriori 分类算法:C4.5,朴素贝叶斯,SVM,KNN,Adaboost,CART 聚类算法:K-Means,EM 一、PageRank 当一篇论文被引用的次数越多,证明这篇论文的影响力越大。 一个网页的入口越多,入链越优质,网页的质量越高。 原理 网页影响力=阻尼影响力+所有入链集合页面的加权影响力之和 一个网页的影响力:所有入链的页面的加权影响力之和。 一个网页对其他网页的影响力贡献为:自身影响力/出链数量。 用户并不都是按照跳转链接的方式来上网,还有其他的方式,比如直接输入网址访问。 所以需要设定阻尼因子,代表了用户按照跳转链接来上网的概率。 比喻说明 1、微博 一个人的微博粉丝数不一定等于他的实际影响力,还需要看粉丝的质量如何。 如果是僵尸粉没什么用

浅析Faiss在推荐系统中的应用及原理

。_饼干妹妹 提交于 2020-05-06 14:28:39
之前在业务中应用了许多Faiss,也看了几篇关于Faiss的论文,简单记录下Faiss的一些属性和应用。Faiss是Facebook的AI团队开源的一套用于做聚类或者相似性搜索的软件库,底层是用C++实现。Faiss因为超级优越的性能,被广泛应用于推荐相关的业务当中。接下来分Faiss在推荐业务应用和Faiss的基本原理两部分进行介绍。 1 Faiss在推荐业务中的应用 在我的认知里,基本上50%以上的手机APP的推荐业务会应用到Faiss服务,可见应用之广。那Faiss究竟是在哪个模块使用呢,通过下方这个图给大家介绍: 大家都知道推荐业务包含排序和召回两个模块,Faiss比较多的应用在召回模块。召回业务中有很多是向量生成类的算法,比如Graph Embedding、ALS Embedding、FM Embedding等。ALS就是经典的矩阵分解算法,它可以将User和Item的行为数据利用矩阵分解的方式生成User向量和Item向量,这些向量分别代表User和Item的属性(工科研究生矩阵论课程学过矩阵分解,不懂的同学要补课了)。 当我们拿到了User和Item的向量,只要计算出哪些Item和User的向量距离较短(最简单的解法是算欧式距离),就可以得出User偏爱的Item。但是当User和Item的数量巨大的时候,设想下某短视频平台,每天有上百万User登录

(数据科学学习手札11)K-means聚类法的原理简介&Python与R实现

大城市里の小女人 提交于 2020-05-02 02:23:24
kmeans法(K均值法)是麦奎因提出的,这种算法的基本思想是将每一个样本分配给最靠近中心(均值)的类中,具体的算法至少包括以下三个步骤:   1.将所有的样品分成k个初始类;   2.通过欧氏距离将某个样品划入离中心最近的类中,并对获得样品与失去样品的类重新计算中心坐标;   3.重复步骤2,直到所有的样品都不能在分类为止 kmeans法与系统聚类法一样,都是以距离的远近亲疏为标准进行聚类的。但是两者的不同之处也很明显:系统聚类对不同的类数产生一系列的聚类结果,而K均值法只能产生指定类数的聚类结果。具体类数的确定,离不开实践经验的积累。有时也可借助系统聚类法,以一部分样本(简单随机抽样)为对象进行聚类,其结果作为K均值法确定类数的参考。 kmeans算法以k为参数,把n个对象分为k个聚类,以使聚类内具有较高的相似度,而聚类间的相似度较低。相似度的计算是根据一个聚类中对象的均值来进行的。kmeans算法的处理流程如下:随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各个聚类中心的距离将其赋给最近的簇;重新计算每个簇的平均值作为聚类中心进行聚类。这个过程不断重复,直到准则函数收敛,得到最终需要的k个类,算法结束;准则函数通常采用最小平方误差准则: 关于k具体数值的选择,在实际工作大多数是根据需求来主观定(如衣服应该设计几种尺码)

感受python之美,python简单易懂的小例子

£可爱£侵袭症+ 提交于 2020-04-26 13:11:09
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 1 简洁之美 通过一行代码,体会Python语言简洁之美 2 Python绘图 Python绘图方便、漂亮,画图神器pyecharts几行代码就能绘制出热力图: 炫酷的水球图: 经常使用的词云图: 3 Python动画 仅适用Python的常用绘图库:Matplotlib,就能制作出动画,辅助算法新手入门基本的排序算法。如下为一个随机序列,使用快速排序算法,由小到大排序的过程动画展示: 归并排序动画展示: 使用turtule绘制的漫天雪花: imeline时间轮播图: 4 Python数据分析 Python非常适合做数值计算、数据分析,一行代码完成数据透视: 5 Python机器学习 Python机器学习库Sklearn功能强大,接口易用,包括数据预处理模块、回归、分类、聚类、降维等。一行代码创建一个KMeans聚类模型: 6 Python-GUI PyQt设计器开发GUI,能够迅速通过拖动组建搭建出来,使用方便。如下为使用PyQt,定制的一个专属自己的小而美的计算器。 除此之外,使用Python的Flask框架搭建Web框架,也非常方便。 如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗