交换机
园区网交换机
数据中心与云计算交换机
行业精选交换系列
意图网络指挥官
无线
放装型无线接入点
墙面型无线接入点
智分无线接入点
室外无线接入点
场景化无线
行业精选无线系列
无线管理与应用
今年的世纪人机围棋大战刷爆了朋友圈,也把全世界的眼光再次聚焦到“人工智能”,当你在好奇什么是“人工智能”的时候,你一定会注意到其背后的核心其实是机器学习,机器学习是人工智能的灵魂,是专门研究计算机怎样模拟人类的学习 行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
当人们还在担心并讨论人工智能会不会超越人类、会不会对人类造成威胁的时候,小锐的做法是先掌控人工智能的核心『机器学习』,为自己所用,运用到生活上。小锐是个单身汪,朋友给小锐介绍了好多相亲的对象,但一直找不到合适的女生。小锐自认为不是一个肤浅的“外貌协会者”,所以想在短期内了解妹子的一些信息后准确判断妹子的性格怎么样,与自己是否合适。
明确目标
Tips:什么是『机器学习』?
机器学习是计算机通过已有的数据,得到某种模型,并利用此模型来预测未来的一种方法。
小锐的目标很明确:通过输入妹子的一些基本信息,比如星座、爱好、职业和生活习惯等,得出该妹子的性格,来确定是否合适自己。
为了达到目标,需要通过一下来构建完美的模型:
1. 采集大量的数据;
2. 数据加工--数据预处理;
3. 构建模型;
4. 模型评估;
5. 新样本预测;
1. 数据采集
数据是机器学习的源泉,机器学习的知识是潜藏在大量的数据里,以正确的方式收集正确的数据将会使得机器学习事半功倍。
小锐根据以前认识的一些女生,或者朋友认识的女生,收集她们相关的信息(前提是不侵犯隐私):一方面通过交流获取信息,另一方面可以通过某种方法获取女生微信朋友圈、QQ空间或者微博的文本状态内容,通过文本挖掘的方法分析文本主题的频繁项集,获取女生比较喜欢关注的话题、兴趣爱好点。
然后整理信息形成规范化的数据,例如(星座=双子座,爱好=看书+听音乐+摄影,职业=教师,生活习惯=比较居家,朋友圈关注话题=饮食+教育+文学),(星座=狮子座,爱好=旅游+健身+唱歌,职业=歌手,生活习惯=经常晚归,朋友圈关注话题=音乐+搞笑+游戏)…每个括号是一条数据记录,多个记录就形成了一个“数据集”(data set)。而“星座”、“爱好”和“职业”则是每个数据的“属性”(attribute)或“特征”(feature)。
每个女生还有其他的信息,但是我们根据相关性选取其中五种信息作为我们数据的属性,这个过程就是“特征选择”(feature selection)。我们把以上五个属性作为五个坐标轴,形成一个五维的空间,则每条数据就是空间中的一个“特征向量”(feature vector)。
2. 数据预处理
数据预处理是根据不同类型的分析数据和业务需求,对数据进行清理、集成、变换、规约等多层次的处理。
因为小锐获取的数据有限(^~^),如果数据量就较大时,有可能出现一些属性和标签明显不对应的样本(即数据不一致)、或者有些样本属性值缺失(女生不愿意透露),还有些根本不在小锐考虑的范围内的样本等,因此我们要对数据进行数据筛选、缺失值处理、数据规约等数据预处理,以利于训练模型。
3. 构建模型
建模是机器学习的核心环节,综合考虑业务需求和数据特征,选择合适的算法对数据进行建模分析,充分挖掘数据特征,反应数据的内在规律。
以上采集的数据集作为模型训练的“训练集”(training set),其中每个数据称为一个“训练样本”(training sample)。
我们可以用“监督学习”(supervised learning)方法训练模型,先为每个训练样本确定一个标签,标签可以是连续值,比如小锐对每个样本的喜欢程度,因此上述两个样本被小锐分别标为0.95和0.35,这种学习方法称为“回归”(regression)。标签值也可以是离散值,如小锐立志要找一个贤妻良母型的女朋友,那么上述两个样本,小锐就把她们标识为“合适”,“不合适”,这就是分类(classification)。
我们可能对某些样本不确定标识什么标签,对此可以用“无监督学习”(unsupervised learning),即为训练数据不用贴标签,如对数据进行“聚类”(clustering),数据集会根据数据之间的相似度自动划分成若干组,每组称为一个“簇”(cluster)。比如小锐收集的数据集有可能被划分成“内向型”、“可爱型”、“豪爽型”等。
我们希望对训练样本进行学习,能够得到一个从输入空间(即女生的信息)到输出空间(即女生的性格或者是小锐喜欢的类型)的一种映射关系,或者能够把新数据(即新认识的女生)准确划分到相应的类型组,也就是我们学习得到的模型。
4. 模型评估
在实际业务中,我们可以选择多种不同的学习算法,甚至同一算法使用不同的参数配置时也会产生不同的模型,模型评估能够帮我们选择最合适的模型。
训练模型的目标是模型不仅能够对训练样本进行准确的判断,更重要的是对于新的样本能够准确地预测,模型这种适应新样本的能力称为“泛化”(generalization)能力,也是小锐此次的目的,希望模型能够对小锐刚认识的女生的性格进行准确的预测。那我们应该怎样获取一个泛化能力强的模型呢?
我们的目标是使得结构化风险最小,一般是先希望使“训练误差”(training error)最小化,训练误差即是训练样本中分类错误的样本在总样本数的占比。但是训练误差最小甚至为0并不代表模型就是最好的,有可能是出现“过拟合”(overfitting),就是模型把训练样本自己的某个属性误认为是所有样本包括新样本所共有的特性,例如模型认为“生活习惯=比较居家”就是贤妻良母型,其实有可能是“资深宅女”,那就不是小锐喜欢的了。与之相反的是“欠拟合”(underfitting),也就是模型没有学习好。
我们可以采用留出法、交叉验证法和自助法等方法来评估模型,使得最终得到的模型能够比较准确地预测出女生的性格,让小锐能够拥有一个无敌的“找女朋友”利器,这也是所有单身汪的“福利”,为世界更加和谐作出贡献。
5. 模型预测
模型预测...还要讲吗?!
下图就是小锐的女朋友原型~
(图片来源互联网,如有版权请联系我们)
小锐一口气说了这么多,我们再来总结一下机器学习的过程:
1. 搭建机器学习的环境,小锐是使用matlab 和 python 两种
2. 确定机器学习的目标,如图像识别、网站数据挖掘等
3. 训练样本采集,根据业务需求采集合适的训练数据
4. 数据预处理,对数据进行清洗、规约等
5. 构建模型,选择合适的算法,如分类、回归、聚类等
6. 模型评估,通过交叉验证等方式选择最佳的模型
7. 模型预测,用新样本验证模型。
怎么样?经过小锐的解释,人工智能是不是真的像追女孩一样简单呢?但是可别忘了,女人是这个世界上最复杂的动物。一位学术大牛曾经说过,这世界上最难懂的理论都不及女人心思的十分之一。追女孩有时候真的很简单,有时候真的很难!人工智能有时候真的很简单,有时候真的很难!
■ ■ ■
推荐机器学习的网站:
scikit机器学习开源库:
http://scikit-learn.org/stable/
Spark中的分布式机器学习程序库:
http://spark.apache.org/docs/latest/mllib-guide.html
Weka是数据挖掘方面的机器学习算法集:
http://www.cs.waikato.ac.nz/ml/weka/
作者简介:小锐,锐捷网络WIS产品开发,是一个资深的宫崎骏动漫粉丝,向往《龙猫》中奇幻纯真的童年,渴望《千与千寻》中执着的爱情,当然也是一个不折不扣的IT吃货。
致力于将机器学习的灵魂注入WIS,用最专业的方法重新定义无线网络、持续打造用户的极致体验,采用机器学习的智能算法来感知环境变化、体验变化、信号变化,为网络提供最聪明的服务。