import numpy as np
import matplotlib.pyplot as plt greyhounds = 500 # 灰猎犬500只
labs = 500 # 拉布拉多犬500只 # 灰猎犬的身高高于拉布拉多犬
grey_height = 28 + 4 * np.random.randn(greyhounds)
lab_height = 24 + 4 * np.random.randn(labs) plt.hist([grey_height,lab_height],stacked=True,color=['r','b'])
plt.show()

aaarticlea/png;base64,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" alt="img">

从上图中我们可以得到的信息,首先在height低于20时,我们可以很高的概率预测这只狗是拉布拉多犬,而在height高于35时,我们也能相当有信心的预测这只狗是灰猎犬,但是当height位于这两者之间时,两种狗的概率很接近。因此height是一个有用的特征但是并不完美。

所以在机器学习中,我们总是需要多种特征,否则我们只需要写if-else的规则而不是分类器。

Independent features are best

独立的特征给你不同类型的信息,试想一下上面的例子,有两个特征,用厘米测定的height和用英寸测定的height。这两个特征是高度相关的。从训练数据中删除高度相关的特征是一个很好的做法,因为很多分类器没有足够的智能明白用厘米或英寸度量的身高是同样的事情。因此分类器可能会重复计算height特征的重要性。

Features should be easy to understand (simpler relationships are easier to learn)

举一个例子,假如你把一封信从一个城市寄到另一个城市,预测需要多少天。两个城市之间的距离越远所需时间也就越长。一个有用的特征是用英里表示两个城市之间的距离,一个较差的特征是用城市的经纬度去标示其位置。

reference

What makes a good feature? - machine learning recipes # 3

histogram_demo_multihist.py - 做EDA时可以参考的代码

What makes a good feature的更多相关文章

  1. 代码的坏味道(18)——依恋情结(Feature Envy)

    坏味道--依恋情结(Feature Envy) 特征 一个函数访问其它对象的数据比访问自己的数据更多. 问题原因 这种气味可能发生在字段移动到数据类之后.如果是这种情况,你可能想将数据类的操作移动到这 ...

  2. SharePoint 2013: A feature with ID has already been installed in this farm

    使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...

  3. ABP源码分析二十一:Feature

    Feature是什么?Feature就是对function的分类方法,其与function的关系就比如Role和User的关系一样. ABP中Feature具有以下属性: 其中最重要的属性是name, ...

  4. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V8   重构iocutilV4,use def iocFact...jettyUtil V ...

  5. django之一些feature

    前端之django一些feature 本节内容 cookie session 跨站请求保护 分页 序列化 model模块 CBV和FBV 模板渲染对象 1. cookie cookie 是一种发送到客 ...

  6. 关于 feature team 的一些内容

    矩阵式管理,是常见的经典管理架构.其最早起源于美国的航空航天部门,然后被美国人带到了日本,然后被日本人带到了台湾,然后台湾人带到大陆...矩阵管理最典型的特征是,组织架构按职能与专业划分,项目由跨越部 ...

  7. Feature Access

    在ArcGIS Server中发布支持Feature Access地图服务,你需要知道的几点: 所绘制的mxd地图文件中包含的数据,必须来自企业级数据库链接: mxd中包含的所有图层的数据,必须来自同 ...

  8. (十一)WebGIS中要素(Feature)的设计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在GIS中元素一般分为点元素,线元素,面元素以及symbol ...

  9. SQL Server 2012安装错误案例:Error while enabling Windows feature: NetFx3, Error Code: -2146498298

    案例环境: 服务器环境 :    Windows Server 2012 R2 Standard 数据库版本 :    SQL Server 2012 SP1 案例介绍:   在Windows Ser ...

  10. [有意思]The IT workers of Star Wars -- That's not a bug. It's a feature

    Yeah, that Artoo is kinda mouthy... ... now select, "restore to factory settings." That'll ...

随机推荐

  1. js gridview中checkbox的全选与全不选

    1.html: <asp:GridView runat="server" ID="gvAddBySR" AutoGenerateColumns=" ...

  2. C# WPF集中引用图片等资源的路劲方式

    第一内部资源: pack://application:,,,/images/my.jpg 第二 外部程序资源: pack://SiteOfOrigin:,,,/images/my.jpg 需要将资源放 ...

  3. JS基础_Unicode编码表

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 谷歌浏览器禁用JS步骤

    前奏: 当你想访问一个页面,因为不符合访问条件,而被JS阻拦:或者你打开的页面特效太多,干扰视线:亦或者JS的某个功能禁止了你的某些行为: 是不是很难受, 好办,咱给他禁了不就好啦,大胆地屏蔽它,不管 ...

  5. Troubleshooting: Cannot Run on an Android Device

    同事在他的开发环境中,在IDE中直接在手机上运行Android项目,结果出现这个错误,无法在手机上安装. 产生这个问题的原因,一般就是签名不对,这种情况,删除手机上装过的同名应用,就可以解决.当然,你 ...

  6. Oracle笔记(七) 数据更新、事务处理、数据伪列

    一.数据的更新操作 DML操作语法之中,除了查询之外还有数据的库的更新操作,数据的更新操作主要指的是:增加.修改.删除数据,但是考虑到emp表以后还要继续使用,所以下面先将emp表复制一份,输入如下指 ...

  7. java-面试题为什么redis这么快

    文章:为什么说Redis是单线程的以及Redis为什么这么快! 文章比较详细,有些细节可能需要注意. 1,比如CPU不是redis的瓶颈 2,随着连接数的增加,并发会降低等.

  8. C# .NET 微信开发-------当微信服务器推送消息时如何接收处理

    最近一直在看微信,整整一个月了,看到现在说实话还有很多没看的,从前两周一点看不懂到现在单个功能的一步步实现,不知道这样的速度是否太慢了. 不过现在往下看还是有思路了,目前整个文档完成学习只有1/3左右 ...

  9. HNOI 世界树 虚树

    //virtual tree /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #defin ...

  10. SQL语句 case ... when

    select 字段A, 字段B, CASE WHEN t.operate = 1 then 'aa'WHEN t.operate = 2 then 'bb'WHEN t.operate = 3 the ...