<commit_before>---
layout: post
title: 机器学习笔记-概念学习和一般到特殊序
date: 2015-05-16 00:05
summary: 再读Mitchell机器学习，对概念学习加深下理解。虽然这是一种很简单的算法，但是对于入门来说，这一章节具有启发性。
---


#### 0x00 什么是概念学习
生活中充满这概念，可以被我们认知的事物都是一个概念。实际存在的事物如人、汽车等，能被我们感知的事件如学习、跳舞等，这些都可以认为是概念。`每个概念可被看作一个对象或事件的集合`，要是判断一个样例是否属于某一概念，只要看它是否属于这一感念的集合。

机器学习要做的就是从许多的特殊训练样例中得到一般概念。这和人类的学习有点相似，小时候当你每次遇到一只鸟时，你会问那是什么鸟啊？老师或父母会耐心告诉你，那是黄鹂、那是乌鸦、那是麻雀，于是你就能知道哪些是麻雀，哪些不是麻雀，并可能告诉你为什么那不是麻雀。你可能在脑子里会得到这样的知识：麻雀一般体型较小以及其他特征。根据这些特征，你可以知道哪些是麻雀，哪些不是麻雀。

和人类的相似，这里的概念学习也是从一堆已经标注的样例（你问那是什么鸟时，老师和父母会为你标注，麻雀 or 不是麻雀）中，学习得到一个函数f，通过该函数就能得到是麻雀或不是麻雀这两种情况，因此f是一个布尔函数。

书本上对概念学习给出的解释是：`从有关某个布尔函数输入输出训练样例中推断出该布尔函数`。

即系统输入是训练样例，输出是一个布尔函数（注意！输出不是一个结果）。

#### 0x01 一个例子
目标概念：Aldo是在这天进行水上运动

说明： 这里需要根据Aldo之前运动时的环境情况记录，判断某天Aldo是否需要进行水上运动。这里其实是需要通过学习得到一个布尔函数，从而实现预测。

| 序号 | 天气 | 温度 | 湿度 | 风力 | 水温 | 预报 | 是否进行水上运动 |
| 1    |  晴  | 温暖 | 正常 | 大   | 温暖 | 未变 | 是               |
| 2    |  晴  | 温暖 | 高   | 大   | 温暖 | 未变 | 是               |
| 3    |  雨  | 冷   | 高   | 大   | 温暖 | 变化 | 否               |
| 4    |  晴  | 温暖 | 高   | 大   | 冷   | 变化 | 是               |

上面有天气、温度、湿度、风力、水温、天气预报是否变化这六个属性，需要根据这六个属性总结出规律，得出某个天气环境下，Adlo是否会进行水上运动。

约定这六个属性分别可以取：1）这里明确指定的值（如天气的晴、雨）；2）任意值`?`，可以认为是全部值的集合；3）不接受任何值，可以认为是空集EmptySet。

假设Aldo只在寒冷和潮湿的日子进行水上运动，则得出表达式`<?,冷,高,?,?,?>`，它表示温度为冷，湿度高，其他值任意。而`<EmptySet,EmptySet,EmptySet,EmptySet,EmptySet,EmptySet>`，则表示任意属性不取任何可取的值，其当然是一个反例。

#### 0x02 学习目标
目标概念： 待学习的概念，记作c，这里对应着`是否进行水上运动`的是和否，数学上用1和0来表示。对于任意一个实例x，对应着结果c(x)=0或者c(x)=1。注意，这里c(x)可以认为是"真理"，它是权威答案，我们无法知道，我们只能逼近。

训练样例集记作X，其中一个个的样例（集合元素，或称样本）记作x，满足c(x)=1的样例称为正样例（正样本）；满足c(x)=0的样例称为反例（负样本）。这种学习方式（监督学习）的训练样例会带有一个结果值（如是否进行水上运动），因此可以用一个序偶来表示：<x,c(x)>。

`学习目标`是得到有关目标概念的函数c(x)的估计h(x)。和c(x)一样，h(x)也有`h(x)={0,1}`。许多对于c(x)的估计h(x)组成了所有可能假设H。

#### 0x03 先来个小结
因此，概念学习是输入一系列带标签的数据，然后通过学习（学习方法下面讨论），得到一个逼近真实c(x)的估计h(x)，其中c(x)和h(x)都是布尔函数。h(x)可能存在很多，但是可能只有一些或一个或没有能符合真实（事实上我们也不知道真实情况，只有通过现有数据验证）。






<commit_msg>table<commit_after>---
layout: post
title: 机器学习笔记-概念学习和一般到特殊序
date: 2015-05-16 00:05
summary: 再读Mitchell机器学习，对概念学习加深下理解。虽然这是一种很简单的算法，但是对于入门来说，这一章节具有启发性。
---


#### 0x00 什么是概念学习
生活中充满这概念，可以被我们认知的事物都是一个概念。实际存在的事物如人、汽车等，能被我们感知的事件如学习、跳舞等，这些都可以认为是概念。`每个概念可被看作一个对象或事件的集合`，要是判断一个样例是否属于某一概念，只要看它是否属于这一感念的集合。

机器学习要做的就是从许多的特殊训练样例中得到一般概念。这和人类的学习有点相似，小时候当你每次遇到一只鸟时，你会问那是什么鸟啊？老师或父母会耐心告诉你，那是黄鹂、那是乌鸦、那是麻雀，于是你就能知道哪些是麻雀，哪些不是麻雀，并可能告诉你为什么那不是麻雀。你可能在脑子里会得到这样的知识：麻雀一般体型较小以及其他特征。根据这些特征，你可以知道哪些是麻雀，哪些不是麻雀。

和人类的相似，这里的概念学习也是从一堆已经标注的样例（你问那是什么鸟时，老师和父母会为你标注，麻雀 or 不是麻雀）中，学习得到一个函数f，通过该函数就能得到是麻雀或不是麻雀这两种情况，因此f是一个布尔函数。

书本上对概念学习给出的解释是：`从有关某个布尔函数输入输出训练样例中推断出该布尔函数`。

即系统输入是训练样例，输出是一个布尔函数（注意！输出不是一个结果）。

#### 0x01 一个例子
目标概念：Aldo是在这天进行水上运动

说明： 这里需要根据Aldo之前运动时的环境情况记录，判断某天Aldo是否需要进行水上运动。这里其实是需要通过学习得到一个布尔函数，从而实现预测。

| 序号 | 天气 | 温度 | 湿度 | 风力 | 水温 | 预报 | 是否进行水上运动 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -----------------|
| 1    |  晴  | 温暖 | 正常 | 大   | 温暖 | 未变 | 是               |
| 2    |  晴  | 温暖 | 高   | 大   | 温暖 | 未变 | 是               |
| 3    |  雨  | 冷   | 高   | 大   | 温暖 | 变化 | 否               |
| 4    |  晴  | 温暖 | 高   | 大   | 冷   | 变化 | 是               |

上面有天气、温度、湿度、风力、水温、天气预报是否变化这六个属性，需要根据这六个属性总结出规律，得出某个天气环境下，Adlo是否会进行水上运动。

约定这六个属性分别可以取：1）这里明确指定的值（如天气的晴、雨）；2）任意值`?`，可以认为是全部值的集合；3）不接受任何值，可以认为是空集EmptySet。

假设Aldo只在寒冷和潮湿的日子进行水上运动，则得出表达式`<?,冷,高,?,?,?>`，它表示温度为冷，湿度高，其他值任意。而`<EmptySet,EmptySet,EmptySet,EmptySet,EmptySet,EmptySet>`，则表示任意属性不取任何可取的值，其当然是一个反例。

#### 0x02 学习目标
目标概念： 待学习的概念，记作c，这里对应着`是否进行水上运动`的是和否，数学上用1和0来表示。对于任意一个实例x，对应着结果c(x)=0或者c(x)=1。注意，这里c(x)可以认为是"真理"，它是权威答案，我们无法知道，我们只能逼近。

训练样例集记作X，其中一个个的样例（集合元素，或称样本）记作x，满足c(x)=1的样例称为正样例（正样本）；满足c(x)=0的样例称为反例（负样本）。这种学习方式（监督学习）的训练样例会带有一个结果值（如是否进行水上运动），因此可以用一个序偶来表示：<x,c(x)>。

`学习目标`是得到有关目标概念的函数c(x)的估计h(x)。和c(x)一样，h(x)也有`h(x)={0,1}`。许多对于c(x)的估计h(x)组成了所有可能假设H。

#### 0x03 先来个小结
因此，概念学习是输入一系列带标签的数据，然后通过学习（学习方法下面讨论），得到一个逼近真实c(x)的估计h(x)，其中c(x)和h(x)都是布尔函数。h(x)可能存在很多，但是可能只有一些或一个或没有能符合真实（事实上我们也不知道真实情况，只有通过现有数据验证）。







{'fraction_non_alphanumeric': 0.16458982346832815, 'fraction_numerical': 0.020249221183800622, 'mean_word_length': 5.831560283687943, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7303847', 'n_tokens_mistral': 3480, 'n_tokens_neox': 3984, 'n_words': 152}