<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by evfaultcode on Medium]]></title>
        <description><![CDATA[Stories by evfaultcode on Medium]]></description>
        <link>https://medium.com/@easyaitech?source=rss-1698359c920d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*a7UnVAw8lNw4HjuxNnSBXw.png</url>
            <title>Stories by evfaultcode on Medium</title>
            <link>https://medium.com/@easyaitech?source=rss-1698359c920d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 12:55:27 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@easyaitech/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Tesla BMS_a079: What “Unable to Charge, Maximum Charge Level Reached” Usually Means]]></title>
            <link>https://easyaitech.medium.com/tesla-bms-a079-what-unable-to-charge-maximum-charge-level-reached-usually-means-644f0ef0a684?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/644f0ef0a684</guid>
            <category><![CDATA[tesla]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Thu, 14 May 2026 05:39:02 GMT</pubDate>
            <atom:updated>2026-05-14T05:39:02.428Z</atom:updated>
            <content:encoded><![CDATA[<p>When a Tesla shows BMS_a079, the most useful first step is not guessing a part number. The full alert name is usually BMS_a079_Unable_to_charge__Maximum_charge_level_reached, and it points to a Battery Management System condition where the vehicle believes it has reached a reduced maximum charge level.</p><p>In practical terms, owners may see charging stop early, a lower-than-expected maximum state of charge, or a “charge complete” state even though the displayed percentage is below the normal target.</p><p>This is different from a generic slow-charger problem. A wall connector, outlet, adapter, or cable may still be worth checking if the vehicle asks you to check charging equipment, but BMS_a079 itself is a BMS alert. The BMS is the system that monitors the high-voltage battery pack and decides what charging limits are safe.</p><p>What to record before service</p><p>Save the exact context before clearing messages or changing too many variables:</p><p>1. Exact alert ID: BMS_a079.<br>2. Full alert name if visible: BMS_a079_Unable_to_charge__Maximum_charge_level_reached.<br>3. State of charge when charging stopped.<br>4. Charge limit setting and whether the app says charging is complete.<br>5. Whether AC charging, DC fast charging, or both are affected.<br>6. Odometer, software version, outside temperature, and recent charging history.<br>7. Any companion BMS alerts.<br>8. Battery and Drive Unit warranty status in the Tesla app.</p><p>This information matters because the service path depends on what the BMS saw, not just on the visible symptom. A screenshot taken before the alert disappears can prevent a lot of back-and-forth.</p><p>Common mistakes</p><p>The first mistake is treating BMS_a079 as only a charger problem. The visible symptom is charging, but the alert source is the Battery Management System.</p><p>The second mistake is attempting high-voltage battery diagnosis outside qualified service. This alert should guide documentation and service preparation, not DIY battery work.</p><p>The third mistake is focusing on a repair price too early. The same owner-visible symptom can lead to different service paths depending on alert history, vehicle configuration, warranty status, and Tesla’s diagnosis.</p><p>When to escalate</p><p>Schedule Tesla Service if the alert persists, the maximum charge level remains reduced, charging repeatedly stops early, or the vehicle shows any driving or service restriction. If the car displays a stronger warning such as “do not drive,” “pull over safely,” or “vehicle may not restart,” follow the vehicle’s instruction first.</p><p>Reference page:<br><a href="https://evfaultcode.com/en/tesla/alerts/bms-a079/">https://evfaultcode.com/en/tesla/alerts/bms-a079/</a></p><p>Educational note: Tesla alert definitions can vary by firmware and vehicle configuration. The safest approach is to preserve the exact alert context and confirm the official diagnosis through Tesla Service.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=644f0ef0a684" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂分类特征（附5种编码方式+优缺点）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E5%88%86%E7%B1%BB%E7%89%B9%E5%BE%81-%E9%99%845%E7%A7%8D%E7%BC%96%E7%A0%81%E6%96%B9%E5%BC%8F-%E4%BC%98%E7%BC%BA%E7%82%B9-c29d908e8bdb?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/c29d908e8bdb</guid>
            <category><![CDATA[特征工程]]></category>
            <category><![CDATA[人工智能]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Tue, 30 Mar 2021 13:51:13 GMT</pubDate>
            <atom:updated>2021-03-30T13:51:13.769Z</atom:updated>
            <content:encoded><![CDATA[<p>本文转自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/classify-feature/">分类特征</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QKXrAmXR5wjUlsHH.png" /></figure><blockquote><em>分类特征是重要的一类特征。分类特征是离散的，非连续的。</em></blockquote><blockquote><em>本文将针对小型分类和大型分类介绍5种主流的编码方式。以及各自的优缺点。</em></blockquote><h3>什么是分类（类别）特征？</h3><p>分类特征是用来表示分类的，他不像数值类特征是连续的，分类特征是离散的。</p><p>比如：</p><ul><li>性别</li><li>城市</li><li>颜色</li><li>IP地址</li><li>用户的账号ID</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rdB8pYQ5LSpN0KyY.png" /></figure><p>有些分类特征也是数值，比如账号ID，IP地址。但是这些数值并不是连续的。</p><p>连续的数字是数值类特征，离散的数字是分类特征。</p><p>关于连续和离散的解释可以看看这篇文章：《<a href="https://zhuanlan.zhihu.com/p/101155810">关于连续和离散的理解</a>》</p><h3>小型分类特征的编码方式</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4Xy-4uBQext8cWMN.png" /></figure><h3>自然数编码/序列编码-Ordinal Encoding</h3><p>某些分类本来就有一定的排序，这种情况下就可以使用简单的自然数编码。</p><p>例如学位：</p><p>学士-0</p><p>硕士-1</p><p>博士-2</p><h3>独热编码-One-Hot Encoding</h3><p>对于城市、颜色、品牌、材质…这些特征就不适合用自然数编码，因为这些特征是没有排序关系的。</p><p>使用独热编码可以让不同的分类处在“平等的地位”，不会因为数值的大小而对分类造成影响。</p><p>例如颜色分类（假设只有3种颜色）：</p><p>红色-100</p><p>黄色-010</p><p>蓝色-001</p><p>跟独热编码类似还有“虚拟编码-Dummy Encoding”和“效果编码-Effect Encoding”。</p><p>实现方式比较相似，不过有一些略微的差别，并且适用在不同的场景。</p><p>感兴趣的可以看看这篇文章：</p><p>《<a href="https://www.cnblogs.com/HuZihu/p/9692554.html">虚拟变量和独热编码的区别</a>》</p><p>《<a href="https://zhuanlan.zhihu.com/p/121822813">赋值方法：效应编码</a>》</p><h3>大型分类特征的编码方式</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tfWQ_9TqggfXQBoT.png" /></figure><h3>目标编码-Target Encoding</h3><p>目标编码是表示分类列的一种非常有效的方法，并且仅占用一个特征空间，也称为均值编码。该列中的每个值都被该类别的平均目标值替代。这可以更直接地表示分类变量和目标变量之间的关系。</p><p>目标编码的扩展阅读：《<a href="https://blog.zenggyu.com/zh/post/2020-01-01/%E7%9B%AE%E6%A0%87%E7%BC%96%E7%A0%81%E7%AE%80%E4%BB%8B/">目标编码简介</a>》</p><h3>散列编码-Hash encoding</h3><p>散列函数也是大家常听到的哈希函数。散列函数是一个确定性函数，它映射一个潜在的无界整数到有限整数范围[1，m]。</p><p>假如有一个分类有1万个值，如果使用独热编码，编码会非常长。而使用了散列编码，不管分类有多少不同的值，都会转换成长度固定的编码。</p><h3>分箱计数-Bin-Counting</h3><p>分箱计数的思维有点复杂：他不是用分类变量的值作为特征，而是使用目标变量取这个值的条件概率。</p><p>换句话说，我们不对分类变量的值进行编码，而是要计算分类变量值与要预测的目标变量之间的相关统计量。</p><h3>不同编码的优缺点总结</h3><h3>独热编码-One-Hot Encoding</h3><p>优点：</p><ol><li>容易实现</li><li>分类很精确</li><li>可用于在线学习</li></ol><p>缺点：</p><ol><li>计算效率不高</li><li>不能适应可增长的类别</li><li>只适用于线性模型</li><li>对于大数据集，需要大规模的分布式优化</li></ol><h3>散列编码-Hash encoding</h3><p>优点：</p><ol><li>容易实现</li><li>模型训练成本更低</li><li>容易适应新类别</li><li>容易处理稀有类</li><li>可用于在线学习</li></ol><p>缺点：</p><ol><li>只适合线性模型或核方法</li><li>散列后的特征无法解释</li><li>精确度难以保证</li></ol><h3>分箱计数-Bin-Counting</h3><p>优点：</p><ol><li>训练阶段的计算负担最小</li><li>可用于基于树的模型</li><li>容易适应新的类别</li><li>可使用back-off方法或最小计数图处理稀有类</li><li>可解释</li></ol><p>缺点：</p><ol><li>需要历史数据</li><li>需要延迟更新，不完全适合在线学习</li><li>很可能导致数据泄露</li></ol><p>上面内容摘自：《<a href="https://book.douban.com/subject/33400236/">精通特征工程</a>》</p><h3>总结</h3><p>分类特征是离散的特征，数值类特征是连续的。</p><p>对于小型分类，常用的编码方式有：</p><ol><li>自然数编码/序列编码-Ordinal Encoding</li><li>独热编码-One-Hot Encoding</li><li>虚拟编码-Dummy Encoding</li><li>效果编码-Effect Encoding</li></ol><p>对于大型分类，常用的编码方式有：</p><ol><li>目标编码-Target Encoding</li><li>散列编码-Hash encoding</li><li>分箱计数-Bin-Counting</li></ol><p>相关文章推荐：</p><p>《<a href="https://www.biaodianfu.com/categorical-feature.html#%E7%9B%AE%E6%A0%87%E7%BC%96%E7%A0%81%EF%BC%88Target_Encoding/Mean_Encoding%EF%BC%89">机器学习之类别特征处理</a>》</p><p>《<a href="https://cloud.tencent.com/developer/article/1528406">特征工程(四): 类别特征</a>》</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c29d908e8bdb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂数值类特征（基本概念+4种处理方式）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E6%95%B0%E5%80%BC%E7%B1%BB%E7%89%B9%E5%BE%81-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-4%E7%A7%8D%E5%A4%84%E7%90%86%E6%96%B9%E5%BC%8F-7ae6f021788c?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/7ae6f021788c</guid>
            <category><![CDATA[数据科学]]></category>
            <category><![CDATA[特征工程]]></category>
            <category><![CDATA[人工智能]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Fri, 26 Mar 2021 08:43:06 GMT</pubDate>
            <atom:updated>2021-03-26T08:43:06.141Z</atom:updated>
            <content:encoded><![CDATA[<p>本文转自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/data-feature/">数值类特征</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Q7oHf4VYwL39g80_.png" /></figure><blockquote><em>数值类特征是最常见的一种特征类型，数值可以直接喂给算法。<br>为了提升效果，我们需要对数值特征做一些处理，本文介绍了4种常见的处理方式：缺失值处理、二值化、分桶、缩放。</em></blockquote><h3>什么是数值类特征？</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xKTHz1TpuuYAKBae.png" /></figure><p>数值类特征就是可以被实际测量的特征。例如：</p><ul><li>人的身高、体重、三维</li><li>商品的访问次数、加入购物车次数、最终销量</li><li>登录用户中有多少新增用户、回访用户</li></ul><p><strong>数值类的特征可以直接喂给算法，为什么还要处理？</strong></p><p>因为好的数值特征不仅能表示出数据隐藏的中的信息，而且还与模型的假设一致。通过合适的数值变换就可以带来很好的效果提升。</p><p>例如线性回归、逻辑回归对于数值的大小很敏感，所以需要进行缩放。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*per7hicfn9MxBi9N.png" /></figure><p>对于数值类特征，我们主要关注2个点：</p><ol><li>大小</li><li>分布</li></ol><p>下面提到的4种处理方式都是围绕大小和分布来优化的。</p><h3>数值类特征常用的4种处理方式</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mR7kOjukub9K0UBl.png" /></figure><ol><li>缺失值处理</li><li>二值化</li><li>分桶 / 分箱</li><li>缩放</li></ol><h3>缺失值处理</h3><p>在实际问题中，经常会遇到数据缺失的情况。缺失值对效果会产生较大的影响。所以需要根据实际情况来处理。</p><p>对于缺失值常用3种处理方式：</p><ol><li>填充缺失值（均值、中位数、模型预测…）</li><li>删除带有缺失值的行</li><li>直接忽略，将缺失值作为特征的一部分喂给模型进行学习</li></ol><h3>二值化</h3><p>这种处理方式通常用在计数的场景，例如：访问量、歌曲的收听次数…</p><p>举例：</p><p>根据用户的听音乐的数据来预测哪些歌曲更受欢迎。</p><p>假设大部分人听歌都很平均，会不停的听新的歌曲，但是有一个用户24小时的不停播放同一首歌曲，并且这个歌曲很偏门，导致这首歌的总收听次数特别高。如果用总收听次数来喂给模型，就会误导模型。这时候就需要使用“二值化”。</p><p>同一个用户，把同一首歌听了N遍，只计数1，这样就能找出大家都喜欢的歌曲来推荐。</p><h3>分桶 / 分箱</h3><p>拿每个人的收入举例，大部分人的收入都不高，极少数人的收入极其高，分布很不均匀。有些人月收入3000，有些人月收入30万，跨了好几个数量级。</p><p>这种特征对于模型很不友好。这种情况就可以使用分桶来处理。分桶就是将数值特征分成不同的区间，将每个区间看做一个整体。</p><p>常见的分桶：</p><ol><li>年龄分布</li><li>商品价格分布</li><li>收入分布</li></ol><p>常用的分桶方式：</p><ol><li>固定数值的分桶（例如年龄分布：0–12岁、13–17岁、18–24岁…）、</li><li>分位数分桶（例如淘宝推荐的价格区间：30%用户选择最便宜的价格区间、60%用户选择的中等价格区间、9%的用户选择最贵的价格区间）</li><li>使用模型找到最佳分桶</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*u2v7mkbEVNfWk8HG.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rXLcT1IaQqfhuuFX.png" /></figure><h3>缩放</h3><p>线性回归、逻辑回归对于数值的大小很敏感、不同特征尺度相差很大的话会严重影响效果。所以需要将不同量级的数值进行归一化。将不同的数量级缩放到同一个静态范围中（例如：0~1，-1~1）。</p><p>常用的归一化方式：</p><ol><li>z分数标准化</li><li>min-max标准化</li><li>行归一化</li><li>方差缩放</li></ol><p>扩展阅读：</p><p>《<a href="https://www.biaodianfu.com/feature-scaling-normalization-vs-standardization.html#%E6%A0%87%E5%87%86%E5%8C%96%E3%80%81%E5%BD%92%E4%B8%80%E5%8C%96%E7%9A%84%E5%8C%BA%E5%88%AB">数据缩放：标准化和归一化</a>》</p><p>《<a href="https://www.jieandze1314.com/post/cnposts/106/#:~:text=%E6%95%B0%E6%8D%AE%E7%BC%A9%E6%94%BE%EF%BC%8C%E5%9C%A8%E7%BB%9F%E8%AE%A1%E5%AD%A6,%E9%83%BD%E5%A4%84%E4%BA%8E%E5%90%8C%E4%B8%80%E6%95%B0%E9%87%8F%E7%BA%A7%E4%B8%8A%E3%80%82">106-数据缩放scaling（标准化、归一化）的那些事</a>》</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7ae6f021788c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂探索性数据分析 | EDA（基本概念+3步实践法）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90-eda-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-3%E6%AD%A5%E5%AE%9E%E8%B7%B5%E6%B3%95-5b3d04c2b999?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/5b3d04c2b999</guid>
            <category><![CDATA[人工智能]]></category>
            <category><![CDATA[数据分析]]></category>
            <category><![CDATA[特征工程]]></category>
            <category><![CDATA[eda]]></category>
            <category><![CDATA[数据科学]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Fri, 26 Mar 2021 08:41:21 GMT</pubDate>
            <atom:updated>2021-03-26T08:41:21.754Z</atom:updated>
            <content:encoded><![CDATA[<p>本文转自easyai，原文地址：《<a href="https://easyai.tech/ai-definition/eda/">探索性数据分析 | EDA</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*m2O49-YgiZWVBdvI.png" /></figure><blockquote><em>探索性数据分析是拿到原始数据后，通过技术手段帮助自己更好的理解数据、提取出“好特征”、建立初步模型的过程。</em></blockquote><blockquote><em>本文将介绍数据的分类方式，以及不同类型的数据如何可视化的具体方法。</em></blockquote><h3>什么是探索性数据分析？</h3><p>说到篮球，大家都知道身高、臂展是运动员的关键特征。</p><p>那手球呢？相信大部分人都说不出来。</p><p>遇到自己不熟悉的领域，需要快速对陌生领域有一定的理解。</p><p>有2种方法来帮助我们理解陌生领域：</p><ol><li>咨询业内人士。资深的业内人士会传授一些他们的经验。</li><li>去研究一下陌生领域的数据。我们可以把手球运动员的身体数据和成绩数据拿过来做分析，看看最优秀的手球运动员都有哪些特点。在没有任何行业经验的情况下，通过对数据的洞察，也能有一些发现。</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-LxcjfPJDpevQS-9.png" /></figure><p>上面的第二条路就是：<strong>探索性数据分析 | Exploratory Data Analysis | EDA</strong></p><p>探索性数据分析就是利用各种技术手段（大部分都是利用数据可视化）探索数据内部结构和规律的一种数据分析方法和理念。</p><p>探索性数据分析的目的是尽可能是洞察数据集、发现数据的内部结构、提取重要的特征、检测异常值、检验基本假设、建立初步的模型。</p><h3>探索性数据分析的3步方法</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Z3VbsgYux6u1Qxej.png" /></figure><p>探索性数据分析的过程大致分为3步：</p><ol><li>数据分类</li><li>数据可视化</li><li>洞察数据</li></ol><h3>第一步：数据分类</h3><p>当我们拿到数据后，第一步就是把这些数据进行分类，然后用不同方法来处理不同类型的数据。</p><p>数据由粗到细可以按照下面的方式来分类：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fxHwWTrEboIM1k2D.png" /></figure><p><strong>结构化数据 VS 非结构化数据</strong></p><p><strong>结构化数据</strong>：能够用表格来组织的数据都算是结构化的数据。</p><p>例如：Excel里的数据、MySQL里的数据…</p><p><strong>非结构化数据</strong>：非表格形式组织的都是。</p><p>例如：文本、图片、视频…</p><p><strong>定量数据 VS 定性数据</strong></p><p>定量数据：数值类型，衡量某样东西的数量。</p><p>例如：1985</p><p>定性数据：类别，描述某样东西的性质。</p><p>例如：80后</p><p><strong>数据的4个等级</strong></p><p><strong>定类等级（norminal level）</strong>：是数据的第一个等级，其结构最弱。只需要按照名称来分类。</p><p>例如：血型（A,B,AB,O）、姓名、颜色</p><p><strong>定序等级（ordinal level）</strong>：定序等级在定类等级的基础上加了自然排序，这样我们就可以对不同数据进行比较。</p><p>例如：餐厅的评星，公司的考核等级</p><p><strong>定距等级（interval level）</strong>：定距等级一定是数值类型的，并且这些数值不仅可以用来排序，还可以用来加减。</p><p>例如：华氏度、摄氏度（温度有负数，不可以进行乘除运算）</p><p><strong>定比等级（ratio level）</strong>：在定距等级的基础上，加入了绝对零点，不但可以做加减的运算，还可以做乘除的运算。</p><p>例如：金钱、重量</p><h3>第二步：数据可视化</h3><p>为了更好的洞察数据，我们可以将数据可视化，从而更好的观察数据的特点。</p><p>常用的数据可视化有下面几种：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*zpzzR0Ic2s2sCWGL.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qDvPzEzNtLm_7J74.png" /></figure><p>上面的4个数据等级需要对应不同的可视化方法，下面整理了一个表格，可以帮助大家更好的选择可视化的方案。</p><p>下面是一些基础的可视化方案，在实际应用中，会有更复杂的，组合图表可以使用。</p><p>数据等级属性描述性统计图表定类离散、无序频率占比、众数条形图、饼图定序有序类别、比较频率、众数、中位数、百分位数条形图、饼图定距数字差别有意义频率、众数、中位数、均值、标准差条形图、饼图、箱线图定比连续均值、标准差条形图、曲线图、饼图、箱线图</p><h3>第三步：洞察数据</h3><p>数据的可视化可以帮助我们更好的洞察数据，我们可以更高效的发现哪些数据更重要，不同数据之间可能存在的关系，哪些数据会相互影响…</p><p>之所以叫探索性数据分析，就是没什么固定的套路，所以这一步没什么好讲的。</p><h3>总结</h3><p>探索性数据分析就是利用各种技术手段（大部分都是利用数据可视化）探索数据内部结构和规律的一种数据分析方法和理念。</p><p>探索性数据分析的过程大致分为3步：</p><ol><li>数据分类</li><li>数据可视化</li><li>洞察数据</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5b3d04c2b999" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂特征工程 | Feature Engineering（基本概念+重要性+4步评估）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B-feature-engineering-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-%E9%87%8D%E8%A6%81%E6%80%A7-4%E6%AD%A5%E8%AF%84%E4%BC%B0-e3e6a9049f18?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/e3e6a9049f18</guid>
            <category><![CDATA[数据科学]]></category>
            <category><![CDATA[特征工程]]></category>
            <category><![CDATA[人工智能]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Fri, 26 Mar 2021 08:37:23 GMT</pubDate>
            <atom:updated>2021-03-26T08:37:23.946Z</atom:updated>
            <content:encoded><![CDATA[<p>本文转自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/feature-engineering/">特征工程 — Feature Engineering</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*7RJKuVjfeLD23aAL.png" /></figure><blockquote><em>特征工程是机器学习工作流程中重要的组成部分，他是将原始数据“翻译”成模型可理解的形式。</em></blockquote><blockquote><em>本文将介绍特征工程的基本概念、重要性和性能评估的4个步骤。</em></blockquote><h3>特征工程的重要性</h3><p>大家都听过美国计算机科学家 Peter Norvig 的2句经典名言：</p><blockquote><em>基于大量数据的简单模型优于基于少量数据的复杂模型。</em></blockquote><p>这句说明了数据量的重要性。</p><blockquote><em>更多的数据优于聪明的算法，而好的数据优于多的数据。</em></blockquote><p>这句则是说的特征工程的重要性。</p><p>所以，如何基于给定数据来发挥更大的数据价值就是特征工程要做的事情。</p><p>在16年的一项调查中发现，数据科学家的工作中，有80%的时间都在获取、清洗和组织数据。构造机器学习流水线的时间不到20%。详情如下：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*sU6oycvU4-igDTqH.png" /></figure><ul><li>设置训练集：3%</li><li>清洗和组织数据：60%</li><li>收集数据集：19%</li><li>挖掘数据模式：9%</li><li>调整算法：5%</li><li>其他：4%</li></ul><p>PS:数据清洗和组织数据也是数据科学家“最讨厌”的工作。感兴趣的可以看这篇原始的文章：</p><p>数据来源：《<a href="https://whatsthebigdata.com/2016/05/01/data-scientists-spend-most-of-their-time-cleaning-data/">Data Scientists Spend Most of Their Time Cleaning Data</a>》</p><h3>什么是特征工程</h3><p>我们先来看看特征工程在机器学习流程中的位置：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*p4OyYTtmy7h-Vqch.png" /></figure><p>从上图可以看出，特征工程处在原始数据和特征之间。他的任务就是将原始数据“翻译”成特征的过程。</p><p>特征：是原始数据的数值表达方式，是机器学习算法模型可以直接使用的表达方式。</p><p><strong>特征工程是一个过程，这个过程将数据转换为能更好的表示业务逻辑的特征，从而提高机器学习的性能。</strong></p><p>这么说可能不太好理解。其实特征工程跟做饭很像：</p><p>我们将食材购买回来，经过清洗、切菜，然后开始根据自己的喜好进行烹饪，做出美味的饭菜。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*F9Zz8jjV2YA-PVwH.png" /></figure><p>上面的例子中：</p><p>食材就好像原始数据</p><p>清洗、切菜、烹饪的过程就好像特征工程</p><p>最后做出来的美味饭菜就是特征</p><p>人类是需要吃加工过的食物才行，这样更安全也更美味。机器算法模型也是类似，原始数据不能直接喂给模型，也需要对数据进行清洗、组织、转换。最后才能得到模型可以消化的特征。</p><p>除了将原始数据转化为特征之外，还有2个容易被忽视的重点：</p><p><strong>重点1：更好的表示业务逻辑</strong></p><p>特征工程可以说是业务逻辑的一种数学表达。</p><p>我们使用机器学习的目的是为了解决业务中的特定问题。相同的原始数据有很多种转换为特征的方式，我们需要选择那些能够“更好的表示业务逻辑”，从而更好的解决问题。而不是那些更简单的方法。</p><p><strong>重点2：提高机器学习性能</strong></p><p>性能意味着更短时间和更低成本，哪怕相同的模型，也会因为特征工程的不同而性能不同。所以我们需要选择那些可以发挥更好性能的特征工程。</p><h3>评估特征工程性能的4个步骤</h3><p>特征工程的业务评估很重要，但是方法五花八门，不同业务有不同的评估方法。</p><p>这里只介绍性能的评估方式，相对通用一些。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*IicNFHaD8wJq-3nI.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Xdqu14oL2B-TNep3.png" /></figure><ol><li>在应用任何特征工程之前，得到机器学习模型的基准性能</li><li>应用一种或多种特征工程</li><li>对于每种特征工程，获取一个性能指标，并与基准性能进行对比</li><li>如果性能的增量大于某个阈值，则认为特征工程是有益的，并在机器学习流水线上应用</li></ol><p>例如：基准性能的准确率是40%，应用某种特征工程后，准确率提升到76%，那么改变就是90%。</p><p>（76%-40%）/ 40%=90%</p><h3>总结</h3><p>特征工程是机器学习流程里最花时间的工作，也是最重要的工作内容之一。</p><p><strong>特征工程定义：是一个过程，这个过程将数据转换为能更好的表示业务逻辑的特征，从而提高机器学习的性能。</strong></p><p><strong>特征工程容易被忽略的2个重点：</strong></p><ol><li>更好的表示业务逻辑</li><li>提高机器学习性能</li></ol><p><strong>特征工程性能评估的4个步骤：</strong></p><ol><li>在应用任何特征工程之前，得到机器学习模型的基准性能</li><li>应用一种或多种特征工程</li><li>对于每种特征工程，获取一个性能指标，并与基准性能进行对比</li><li>如果性能的增量大于某个阈值，则认为特征工程是有益的，并在机器学习流水线上应用</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e3e6a9049f18" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂人工智能里的算法（4个特征+3个算法选择 Tips）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E9%87%8C%E7%9A%84%E7%AE%97%E6%B3%95-4%E4%B8%AA%E7%89%B9%E5%BE%81-3%E4%B8%AA%E7%AE%97%E6%B3%95%E9%80%89%E6%8B%A9-tips-e1d17c0d2802?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/e1d17c0d2802</guid>
            <category><![CDATA[人工智能]]></category>
            <category><![CDATA[算法]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Thu, 12 Mar 2020 13:56:19 GMT</pubDate>
            <atom:updated>2020-03-12T13:56:19.371Z</atom:updated>
            <content:encoded><![CDATA[<p>本文首发自easyAI，原文地址《<a href="https://easyai.tech/ai-definition/algorithm/">一文看懂人工智能里的算法（4个特征+3个算法选择 Tips）</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4sbhF-8b73--_ZPG.png" /></figure><blockquote><em>人工智能有三驾马车：数据、算法、算力。本文重点介绍算法相关的知识。</em></blockquote><blockquote><em>本文将介绍算法在人工智能里的概念，算法的4个特征、6个通用方法。以及在选择算法时需要注意的3个点。</em></blockquote><h3>什么是算法？</h3><p>简单的说，算法就是：<strong>解决问题的手段，并且是批量化解决问题的手段。</strong></p><p>菜谱就是一种“算法”，只要按照菜谱的方法做，就能做出对应的菜。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*m8elEFq6rDVS2ziu.png" /></figure><p>人工智能里的算法主要是用来训练模型的。</p><p><a href="https://easyai.tech/ai-definition/machine-learning/">机器学习</a> 一共有7步，第3步就是选择合适的算法模型。通过训练得到最后的可预测模型。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*P2iwWO__GhBro5zU.png" /></figure><h3>算法的4个基本特征</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KTxn1ScEFZ8f4Msy.png" /></figure><p>算法具有下面4个特征：</p><ol><li>可行性</li><li>确定性</li><li>有穷性</li><li>拥有足够的情报</li></ol><p>关于这4项特征详细的说明请查看《<a href="https://blog.csdn.net/zcmlimi/article/details/43372789">算法的基本概念</a>》</p><h3>算法的6个基本方法</h3><p>计算机的算法和人类计算的方式不同，大致有6种不同的思路：</p><ol><li>列举法</li><li>归纳法</li><li>递推</li><li>递归</li><li>减半递推技术</li><li>回溯法</li></ol><p>想要了解详情可以查看《<a href="https://blog.csdn.net/zcmlimi/article/details/43372789">算法的基本概念</a>》</p><h3>选择算法时的3个Tips</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*r0Y4RIclTdYSe4zA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KdglEHdpHkiFpVQg.png" /></figure><ol><li>解决不同的问题可能会用到不同的算法，也可能用相同的算法。<strong>没有某种算法是万能的</strong>，只是适用的范围不同而已。</li><li><strong>算法没有高级和低级之分</strong>，快速便宜的解决问题才是目的，一味追求复杂的算法（例如：深度学习），相当于“用大炮打蚊子”</li><li>有时候有多种算法可以解决同一个问题，用最低的成本和最短的时间解决问题才是目的。<strong>根据不同环境选择合适的算法很重要。</strong></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e1d17c0d2802" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂人脸识别（4个特点+4个实现步骤+5个难点+算法发展轨迹）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB-4%E4%B8%AA%E7%89%B9%E7%82%B9-4%E4%B8%AA%E5%AE%9E%E7%8E%B0%E6%AD%A5%E9%AA%A4-5%E4%B8%AA%E9%9A%BE%E7%82%B9-%E7%AE%97%E6%B3%95%E5%8F%91%E5%B1%95%E8%BD%A8%E8%BF%B9-2661078386ad?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/2661078386ad</guid>
            <category><![CDATA[计算机视觉]]></category>
            <category><![CDATA[人脸识别]]></category>
            <category><![CDATA[人工智能]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Mon, 09 Mar 2020 03:12:44 GMT</pubDate>
            <atom:updated>2020-03-09T03:12:44.478Z</atom:updated>
            <content:encoded><![CDATA[<p>本文首发自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/facial-recognition/">一文看懂人脸识别（4个特点+4个实现步骤+5个难点+算法发展轨迹）</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mcAjh8zrZMMfeNzv.png" /></figure><blockquote><em>人脸识别是身份识别的一种方式，目的就是要判断图片和视频中人脸的身份时什么。</em></blockquote><blockquote><em>本文将详细介绍人脸识别的4个特点、4个步骤、5个难点及算法的发展轨迹。</em></blockquote><h3>什么是人脸识别？</h3><p>人脸识别是 计算机视觉-<a href="https://easyai.tech/ai-definition/computer-vision/">computer Vision</a> 领域里很典型的应用。</p><p>人脸识别的目的就是要判断图片和视频（视频是由图片构成的）中人脸的身份是什么。</p><p>人脸识别是身份识别的一种，它跟身份证识别、指纹识别、虹膜识别都是相似的。可以将人脸识别和大家熟悉的身份证做对比：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*V_AZqUVkWCnvZFBd.png" /></figure><ol><li>录入信息（开通身份证 — 录入人脸信息）</li><li>将信息存入数据库（身份证信息 — 人脸信息）</li><li>当需要验证身份时，将新采集信息和数据库信息作比对（扫身份证 — 刷脸）</li></ol><h3>人脸识别有4个特点</h3><p>人脸识别和其他身份识别相比，有4个特点：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*NpjkkoitiIRKqQFF.png" /></figure><ol><li>便捷性。人脸是生物特征，不需要携带类似身份证的东西</li><li>非强制性。识别的过程甚至不需要对象的配合，只要拍摄到人脸就可以进行识别，例如安防领域就是如此。</li><li>非接触性。不需要跟设备进行接触，相比指纹更加安全一些。</li><li>并行处理。一张照片里有多个人脸时可以一起处理，不像指纹和虹膜，需要一个一个来。</li></ol><p>基于以上特点，人脸识别正在被广泛的应用在各个领域。大家在生活中随处都可以看到人脸识别的应用。</p><h3>人脸识别的 4 个步骤</h3><p>人脸识别的过程中有4个关键的步骤：</p><ol><li>人脸检测</li><li>人脸对齐</li><li>人脸编码</li><li>人脸匹配</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*SUPeGTUF9f1h5ISq.png" /></figure><p>下面详细说明一下这4个步骤。</p><h3>人脸检测</h3><p>人脸检测的目的是寻找图片中人脸的位置。当发现有人脸出现在图片中时，不管这个脸是谁，都会标记出人脸的坐标信息，或者将人脸切割出来。</p><p>可以使用方向梯度直方图(HOG)来检测人脸位置。先将图片灰度化，接着计算图像中像素的梯度。通过将图像转变成HOG形式，就可以获得人脸位置。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*gAIn_bS3K6TyPSsn.jpg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HRtQzO9o0fukmN-l.png" /></figure><h3>人脸对齐</h3><p>人脸对齐是将不同角度的人脸图像对齐成同一种标准的形状。</p><p>先定位人脸上的特征点，然后通过几何变换（仿射、旋转、缩放），使各个特征点对齐（将眼睛、嘴等部位移到相同位置）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*42WZ9_boeHCyVPYV.jpg" /></figure><h3>人脸编码</h3><p>人脸图像的像素值会被转换成紧凑且可判别的特征向量，这也被称为模板（template）。理想情况下，同一个主体的所有人脸都应该映射到相似的特征向量。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*X5FHT-ppYte3-jdy.jpg" /></figure><h3>人脸匹配</h3><p>在人脸匹配构建模块中，两个模板会进行比较，从而得到一个相似度分数，该分数给出了两者属于同一个主体的可能性。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*EvweKenipUIoX0YU.jpg" /></figure><h3>人脸识别的 5 个难点</h3><p>人脸图像在现实世界中的呈现具有高度的可变性。所以人脸识别也是最有挑战性的生物识别方法之一。人脸图像可变的地方包括：</p><ol><li>头部姿势</li><li>年龄</li><li>遮挡</li><li>光照条件</li><li>人脸表情</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XNr7MDji-WIhQc2J.jpg" /></figure><h3>人脸识别算法的发展轨迹</h3><p>人脸识别领域，也是从传统机器学习算法过度到深度学习算法的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*A9YpMYSF0XXgrghW.png" /></figure><h3>传统机器学习算法</h3><p>在机器学习阶段，人脸识别也经历了3个重要的阶段：</p><ol><li>几何特征阶段</li><li>表象特征阶段</li><li>纹理特征阶段</li></ol><h3>深度学习算法</h3><p>在深度学习阶段，算法的发展也同样经历了3个阶段：</p><ol><li>从最开始的 VGG 网络到 Inception 网络再到 Resnet 网络，网络模型总体上呈现出更深，更宽的趋势。</li><li>旷视、商汤为代表的在学术公开竞赛中取得好成绩的这些厂商，开始发展实际业务为起点，通过不断扩大他们的实际数据集合，算法性能也在逐渐的提升。</li><li>进一步增加数据量以提升算法性能以外，与第一阶段相反，大家开始在不降低识别性能的基础上，研究网络的轻量化。轻量化的主要目的有两个，一个是提升算法的速度，甚至能够部署到移动端；另外一个就是便于硬件实现，从而将人脸识别算法直接做成一个硬件模块。</li></ol><p>想要详细了解不同阶段的技术细节，可以看这篇文章《<a href="https://www.infoq.cn/article/CfW4lObDUR-Oiw5PUcru">一文看懂人脸识别技术发展脉络</a>》</p><h3>人脸识别的典型应用</h3><p>人脸识别的应用变得越来越广泛，只要跟身份识别相关的未来都有可能使用人脸识别。下面列几个典型的应用场景。</p><ol><li>门禁系统</li><li>安防系统</li><li>无人超市</li><li>电子护照及身份证</li><li>自主服务系统（如ATM）</li><li>信息安全系统，如刷脸支付</li><li>娱乐型应用，如抖音里的部分道具</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2661078386ad" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂计算机视觉-CV（基本原理+2大挑战+8大任务+4个应用）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89-cv-%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86-2%E5%A4%A7%E6%8C%91%E6%88%98-8%E5%A4%A7%E4%BB%BB%E5%8A%A1-4%E4%B8%AA%E5%BA%94%E7%94%A8-684cf7d43454?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/684cf7d43454</guid>
            <category><![CDATA[计算机视觉]]></category>
            <category><![CDATA[人工智能]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Fri, 06 Mar 2020 02:25:21 GMT</pubDate>
            <atom:updated>2020-03-06T02:25:21.743Z</atom:updated>
            <content:encoded><![CDATA[<p>本文首发自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/computer-vision/">一文看懂计算机视觉-CV（基本原理+2大挑战+8大任务+4个应用）</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Uonz06L862O3r2v4.png" /></figure><blockquote><em>计算机视觉（Computer Vision）是人工智能领域的一个重要分支。它的目的是：看懂图片里的内容。</em></blockquote><blockquote><em>本文将介绍计算机视觉的基本概念、实现原理、8 个任务和 4 个生活中常见的应用场景。</em></blockquote><h3>计算机视觉为什么重要？</h3><p>人的大脑皮层， 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道，没有之一。</p><p>在网络世界，照片和视频（图像的集合）也正在发生爆炸式的增长！</p><p>下图是网络上新增数据的占比趋势图。灰色是结构化数据，蓝色是非结构化数据（大部分都是图像和视频）。可以很明显的发现，图片和视频正在以指数级的速度在增长。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1016/0*ADIZCV2vLdbjrzHS.png" /></figure><p>而在计算机视觉出现之前，图像对于计算机来说是黑盒的状态。</p><p>一张图片对于机器只是一个文件。机器并不知道图片里的内容到底是什么，只知道这张图片是什么尺寸，多少MB，什么格式的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qMPn0B8o8gvp0eqd.png" /></figure><p>如果计算机、人工智能想要在现实世界发挥重要作用，就必须看懂图片！这就是计算机视觉要解决的问题。</p><h3>什么是计算机视觉 — CV？</h3><p>计算机视觉是人工智能的一个重要分支，它要解决的问题就是：<strong>看懂图像里的内容</strong>。</p><p>比如：</p><ul><li>图片里的宠物是猫还是狗？</li><li>图片里的人是老张还是老王？</li><li>这张照片里，桌子上放了哪些物品？</li></ul><h3>计算机视觉的原理是什么？</h3><p>目前主流的基于深度学习的机器视觉方法，其原理跟人类大脑工作的原理比较相似。</p><p>人类的视觉原理如下：从原始信号摄入开始（瞳孔摄入像素 Pixels），接着做初步处理（大脑皮层某些细胞发现边缘和方向），然后抽象（大脑判定，眼前的物体的形状，是圆形的），然后进一步抽象（大脑进一步判定该物体是只气球）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/742/0*RSihVe8PEDftQBE-.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*6gt1UuhJGCmiLEHI.png" /></figure><p>机器的方法也是类似：构造多层的神经网络，较低层的识别初级的图像特征，若干底层特征组成更上一层特征，最终通过多个层级的组合，最终在顶层做出分类。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hVG5b2avEbfR4WyJ.jpg" /></figure><h3>计算机视觉的2大挑战</h3><p>对于人类来说看懂图片是一件很简单的事情，但是对于机器来说这是一个非常难的事情，说 2 个典型的难点：</p><p><strong>特征难以提取</strong></p><p>同一只猫在不同的角度，不同的光线，不同的动作下。像素差异是非常大的。就算是同一张照片，旋转90度后，其像素差异也非常大！</p><p>所以图片里的内容相似甚至相同，但是在像素层面，其变化会非常大。这对于特征提取是一大挑战。</p><p><strong>需要计算的数据量巨大</strong></p><p>手机上随便拍一张照片就是1000*2000像素的。每个像素 RGB 3个参数，一共有1000 X 2000 X 3=6,000,000。随便一张照片就要处理 600万 个参数，再算算现在越来越流行的 4K 视频。就知道这个计算量级有多恐怖了。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*8ON-JwoweJnodUnr.png" /></figure><p><a href="https://easyai.tech/ai-definition/cnn/"><strong>CNN</strong></a><strong> 解决了上面的两大难题</strong></p><p>CNN 属于深度学习的范畴，它很好的解决了上面所说的2大难点：</p><ol><li>CNN 可以有效的提取图像里的特征</li><li>CNN 可以将海量的数据（不影响特征提取的前提下）进行有效的降维，大大减少了对算力的要求</li></ol><p>CNN 的具体原理这里不做具体说明，感兴趣的可以看看《<a href="https://easyai.tech/ai-definition/cnn/">一文看懂卷积神经网络-CNN（基本原理+独特价值+实际应用）</a>》</p><h3>计算机视觉的 8 大任务</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tbr7uu67dXK1QRZe.png" /></figure><h3>图像分类</h3><p>图像分类是计算机视觉中重要的基础问题。后面提到的其他任务也是以它为基础的。</p><p>举几个典型的例子：人脸识别、图片鉴黄、相册根据人物自动分类等。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*bP1J3U43dgjy64m5.jpg" /></figure><h3>目标检测</h3><p>目标检测任务的目标是给定一张图像或是一个视频帧，让计算机找出其中所有目标的位置，并给出每个目标的具体类别。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*ez3t6DkPzJgJiLD4.jpg" /></figure><h3>语义分割</h3><p>它将整个图像分成像素组，然后对像素组进行标记和分类。语义分割试图在语义上理解图像中每个像素是什么（人、车、狗、树…）。</p><p>如下图，除了识别人、道路、汽车、树木等之外，我们还必须确定每个物体的边界。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*3uPvRwb-qXz8I8aE.jpg" /></figure><h3>实例分割</h3><p>除了语义分割之外，实例分割将不同类型的实例进行分类，比如用 5 种不同颜色来标记 5 辆汽车。我们会看到多个重叠物体和不同背景的复杂景象，我们不仅需要将这些不同的对象进行分类，而且还要确定对象的边界、差异和彼此之间的关系！</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/860/0*wanckNelI9zrz2iY.jpg" /></figure><h3>视频分类</h3><p>与图像分类不同的是，分类的对象不再是静止的图像，而是一个由多帧图像构成的、包含语音数据、包含运动信息等的视频对象，因此理解视频需要获得更多的上下文信息，不仅要理解每帧图像是什么、包含什么，还需要结合不同帧，知道上下文的关联信息。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*i2pzNLtYJJQ-EAjJ.jpg" /></figure><h3>人体关键点检测</h3><p>体关键点检测，通过人体关键节点的组合和追踪来识别人的运动和行为，对于描述人体姿态，预测人体行为至关重要。</p><p>在 Xbox 中就有利用到这个技术。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*Qa9VUgQTPAaB1Ywy.jpg" /></figure><h3>场景文字识别</h3><p>很多照片中都有一些文字信息，这对理解图像有重要的作用。</p><p>场景文字识别是在图像背景复杂、分辨率低下、字体多样、分布随意等情况下，将图像信息转化为文字序列的过程。</p><p>停车场、收费站的车牌识别就是典型的应用场景。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*uZpGx5p8gZMHU-pC.jpg" /></figure><h3>目标跟踪</h3><p>目标跟踪，是指在特定场景跟踪某一个或多个特定感兴趣对象的过程。传统的应用就是视频和真实世界的交互，在检测到初始对象之后进行观察。</p><p>无人驾驶里就会用到这个技术。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*mNBpKYUyFsYz8IoN.jpg" /></figure><h3>CV 在日常生活中的应用场景</h3><p>计算机视觉的应用场景非常广泛，下面列举几个生活中常见的应用场景。</p><ol><li>门禁、支付宝上的人脸识别</li><li>停车场、收费站的车牌识别</li><li>上传图片或视频到网站时的风险识别</li><li>抖音上的各种道具（需要先识别出人脸的位置）</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*On7vMGjKCCrbxmJ7.jpg" /></figure><p>这里需要说明一下，条形码和二维码的扫描不算是计算机视觉。</p><p>这种对图像的识别，还是基于固定规则的，并不需要处理复杂的图像，完全用不到 AI 技术。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=684cf7d43454" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂词嵌入word embedding（2种算法+其他文本表示比较）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82%E8%AF%8D%E5%B5%8C%E5%85%A5word-embedding-2%E7%A7%8D%E7%AE%97%E6%B3%95-%E5%85%B6%E4%BB%96%E6%96%87%E6%9C%AC%E8%A1%A8%E7%A4%BA%E6%AF%94%E8%BE%83-c7dd8e4524db?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/c7dd8e4524db</guid>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[word-embeddings]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Tue, 18 Feb 2020 04:50:01 GMT</pubDate>
            <atom:updated>2020-02-18T04:50:01.361Z</atom:updated>
            <content:encoded><![CDATA[<p>首发自easyAI，原文地址：《<a href="https://easyai.tech/ai-definition/word-embedding/">一文看懂词嵌入word embedding（2种算法+其他文本表示比较）</a>》</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*N6K3fPVyfPU-pJtY.png" /></figure><h3>文本表示（Representation）</h3><p>文本是一种非结构化的数据信息，是不可以直接被计算的。</p><p><strong>文本表示的作用就是将这些非结构化的信息转化为结构化的信息</strong>，这样就可以针对文本信息做计算，来完成我们日常所能见到的文本分类，情感判断等任务。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*1-9Zdlk5zP3Zpk4o.png" /></figure><p>文本表示的方法有很多种，下面只介绍 3 类方式：</p><ol><li>独热编码 | one-hot representation</li><li>整数编码</li><li>词嵌入 | word embedding</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*dDGLmECFGeemZssC.png" /></figure><h3>独热编码 | one-hot representation</h3><p>假如我们要计算的文本中一共出现了4个词：猫、狗、牛、羊。向量里每一个位置都代表一个词。所以用 one-hot 来表示就是：</p><p>猫：［1，0，0，0］</p><p>狗：［0，1，0，0］</p><p>牛：［0，0，1，0］</p><p>羊：［0，0，0，1］</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2gYJQEG0d_RhdNt8.png" /></figure><p>但是在实际情况中，文本中很可能出现成千上万个不同的词，这时候向量就会非常长。其中99%以上都是 0。</p><p>one-hot 的缺点如下：</p><ol><li>无法表达词语之间的关系</li><li>这种过于稀疏的向量，导致计算和存储的效率都不高</li></ol><h3>整数编码</h3><p>这种方式也非常好理解，用一种数字来代表一个词，上面的例子则是：</p><p>猫：1</p><p>狗：2</p><p>牛：3</p><p>羊：4</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*TkhBGH8X4_EacllO.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*lHXbMmCNOcRffZK7.png" /></figure><p>将句子里的每个词拼起来就是可以表示一句话的向量。</p><p>整数编码的缺点如下：</p><ol><li>无法表达词语之间的关系</li><li>对于模型解释而言，整数编码可能具有挑战性。</li></ol><h3>什么是词嵌入 | word embedding？</h3><p>word embedding 是文本表示的一类方法。跟 one-hot 编码和整数编码的目的一样，不过​他有更多的优点。</p><p>词嵌入并不特指某个具体的算法，跟上面2种方式相比，这种方法有几个明显的优势：</p><ol><li>他可以将文本通过一个低维向量来表达，不像 one-hot 那么长。</li><li>语意相似的词在向量空间上也会比较相近。</li><li>通用性很强，可以用在不同的任务中。</li></ol><p>再回顾上面的例子：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*gnFApYnNhC6VNeIY.png" /></figure><h3>2 种主流的 word embedding 算法</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*SbCj8AWFSRK4V09I.png" /></figure><h3>Word2vec</h3><p>这是一种基于统计方法来获得词向量的方法，他是 2013 年由谷歌的 Mikolov 提出了一套新的词嵌入方法。</p><p>这种算法有2种训练模式：</p><ol><li>通过上下文来预测当前词</li><li>通过当前词来预测上下文</li></ol><p>想要详细了解 <a href="https://easyai.tech/ai-definition/word2vec/">Word2vec</a>，可以看看这篇文章：《<a href="https://easyai.tech/ai-definition/word2vec/">一文看懂 Word2vec（基本概念+2种训练模型+5个优缺点）</a>》</p><h3>GloVe</h3><p>GloVe 是对 Word2vec 方法的扩展，它将全局统计和 Word2vec 的基于上下文的学习结合了起来。</p><p>想要了解 GloVe 的 三步实现方式、训练方法、和 w2c 的比较。可以看看这篇文章：《<a href="http://www.fanyeong.com/2018/02/19/glove-in-detail/">GloVe详解</a>》</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c7dd8e4524db" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[一文看懂 AI 数据集：训练集、验证集、测试集（附：分割方法+交叉验证）]]></title>
            <link>https://easyaitech.medium.com/%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82-ai-%E6%95%B0%E6%8D%AE%E9%9B%86-%E8%AE%AD%E7%BB%83%E9%9B%86-%E9%AA%8C%E8%AF%81%E9%9B%86-%E6%B5%8B%E8%AF%95%E9%9B%86-%E9%99%84-%E5%88%86%E5%89%B2%E6%96%B9%E6%B3%95-%E4%BA%A4%E5%8F%89%E9%AA%8C%E8%AF%81-9b3afd37fd58?source=rss-1698359c920d------2</link>
            <guid isPermaLink="false">https://medium.com/p/9b3afd37fd58</guid>
            <category><![CDATA[机器学习]]></category>
            <category><![CDATA[人工智能]]></category>
            <category><![CDATA[数据集]]></category>
            <dc:creator><![CDATA[evfaultcode]]></dc:creator>
            <pubDate>Fri, 20 Dec 2019 10:39:35 GMT</pubDate>
            <atom:updated>2019-12-20T10:39:35.834Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tg6_-VGAIhafglnG.png" /></figure><blockquote><em>数据在人工智能技术里是非常重要的！本篇文章将详细给大家介绍3种数据集：训练集、验证集、测试集。</em></blockquote><blockquote><em>同时还会介绍如何更合理的讲数据划分为3种数据集。最后给大家介绍一种充分利用有限数据的方式：交叉验证法。</em></blockquote><p>先用一个不恰当的比喻来说明3种数据集之间的关系：</p><ul><li>训练集相当于上课学知识</li><li>验证集相当于课后的的练习题，用来纠正和强化学到的知识</li><li>测试集相当于期末考试，用来最终评估学习效果</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pc7lvlWRADabYo0W.png" /></figure><h3>什么是训练集？</h3><p><strong>训练集（Training Dataset）是用来训练模型使用的。</strong></p><p>在《<a href="https://easyai.tech/ai-definition/machine-learning/">一文看懂机器学习</a>》里我们介绍了机器学习的7个步骤，训练集（Training Dataset）主要在训练阶段使用。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mf-atTScFpQFQJbL.png" /></figure><h3>什么是验证集？</h3><p>当我们的模型训练好之后，我们并不知道他的表现如何。这个时候就可以使用验证集（Validation Dataset）来看看模型在新数据（验证集和测试集是不同的数据）上的表现如何。<strong>同时通过调整超参数，让模型处于最好的状态</strong>。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*p9bvO7zRsFJmgMg0.png" /></figure><p>验证集有2个主要的作用：</p><ol><li>评估模型效果，为了调整超参数而服务</li><li>调整超参数，使得模型在验证集上的效果最好</li></ol><p>说明：</p><ol><li>验证集不像训练集和测试集，它是非必需的。如果不需要调整超参数，就可以不使用验证集，直接用测试集来评估效果。</li><li>验证集评估出来的效果并非模型的最终效果，主要是用来调整超参数的，模型最终效果以测试集的评估结果为准。</li></ol><h3>什么是测试集？</h3><p>当我们调好超参数后，就要开始「最终考试」了。我们通过测试集（Test Dataset）来做最终的评估。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*srvM4myBK4rgtekJ.png" /></figure><p>通过测试集的评估，我们会得到一些最终的评估指标，例如：准确率、精确率、召回率、F1等。</p><p>扩展阅读：《<a href="https://easyai.tech/ai-definition/accuracy-precision-recall-f1-roc-auc/">分类模型评估指标 — — 准确率、精准率、召回率、F1、ROC曲线、AUC曲线</a>》</p><h3>如何合理的划分数据集？</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PDq_o_lXUBgj-FWy.png" /></figure><p>下面的数据集划分方式主要针对「留出法」的验证方式，除此之外还有其他的交叉验证法，详情见下文 — — 交叉验证法。</p><p>数据划分的方法并没有明确的规定，不过可以参考3个原则：</p><ol><li>对于小规模样本集（几万量级），常用的分配比例是 60% 训练集、20% 验证集、20% 测试集。</li><li>对于大规模样本集（百万级以上），只要验证集和测试集的数量足够即可，例如有 100w 条数据，那么留 1w 验证集，1w 测试集即可。1000w 的数据，同样留 1w 验证集和 1w 测试集。</li><li>超参数越少，或者超参数很容易调整，那么可以减少验证集的比例，更多的分配给训练集。</li></ol><h3>交叉验证法</h3><h3>为什么要用交叉验证法？</h3><p>假如我们教小朋友学加法：1个苹果+1个苹果=2个苹果</p><p>当我们再测试的时候，会问：1个香蕉+1个香蕉=几个香蕉？</p><p>如果小朋友知道「2个香蕉」，并且换成其他东西也没有问题，那么我们认为小朋友学习会了「1+1=2」这个知识点。</p><p>如果小朋友只知道「1个苹果+1个苹果=2个苹果」，但是换成其他东西就不会了，那么我们就不能说小朋友学会了「1+1=2」这个知识点。</p><p><strong>评估模型是否学会了「某项技能」时，也需要用新的数据来评估，而不是用训练集里的数据来评估。这种「训练集」和「测试集」完全不同的验证方法就是交叉验证法。</strong></p><h3>3 种主流的交叉验证法</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4bJcC94PwSNE-WEG.png" /></figure><p><strong>留出法（Holdout cross validation）</strong></p><p>上文提到的，按照固定比例将数据集<strong>静态的</strong>划分为训练集、验证集、测试集。的方式就是留出法。</p><p><strong>留一法（Leave one out cross validation）</strong></p><p>每次的测试集都只有一个样本，要进行 m 次训练和预测。 这个方法用于训练的数据只比整体数据集少了一个样本，因此最接近原始样本的分布。但是训练复杂度增加了，因为模型的数量与原始数据样本数量相同。 一般在数据缺乏时使用。</p><p><strong>k 折交叉验证（k-fold cross validation）</strong></p><p>静态的「留出法」对数据的划分方式比较敏感，有可能不同的划分方式得到了不同的模型。「k 折交叉验证」是一种动态验证的方式，这种方式可以降低数据划分带来的影响。具体步骤如下：</p><ol><li>将数据集分为训练集和测试集，将测试集放在一边</li><li>将训练集分为 k 份</li><li>每次使用 k 份中的 1 份作为验证集，其他全部作为训练集。</li><li>通过 k 次训练后，我们得到了 k 个不同的模型。</li><li>评估 k 个模型的效果，从中挑选效果最好的超参数</li><li>使用最优的超参数，然后将 k 份数据全部作为训练集重新训练模型，得到最终模型。</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Tkli0USuUcWbOQTC.png" /></figure><p><strong>k 一般取 10</strong> 数据量小的时候，k 可以设大一点，这样训练集占整体比例就比较大，不过同时训练的模型个数也增多。 数据量大的时候，k 可以设小一点。</p><p>原文地址《<a href="https://easyai.tech/ai-definition/3dataset-and-cross-validation/">训练集、验证集、测试集</a>》</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9b3afd37fd58" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>