机器学习:带你初步了解机器学习

559 阅读5分钟

作为一名前端开发工程师,其实日常工作中其实很少接触和机器学习相关的技术,但恰好目前工作中有部分需求需要用到机器学习和数据分析相关的技术去进行业务数据的分析,正好自己也对这方面的技术十分感兴趣,于是想好好的去学习下这方面的技术和理论知识。毕竟不断学习、学以致用、不设限 才是我们不断进步的根本呀😁。

首先来看下什么是机器学习吧

机器学习的概念

机器学习是计算机科学更广泛领域中人工智能的一个子集。机器学习的关键在于 让机器去学习。而我们熟知的算法的关键在于 让机器去执行

一个典型的的机器学习的应用: 垃圾邮件的分辨。在初期我们进行垃圾邮件分辨的方式如,编写一些规则,定义“垃圾邮件”, 然后让计算机执行,但是随着时代的进步发展规则会不断变化,我们很定义出虽有满足需求的规则。但是使用机器学习的方法去进行分辨效果会非常好。

还有一些其他的典型应用,比如,人脸识别图像识别数字识别

那么机器是怎么进行学习的呢?可以通过 下图 了解下我们人类是怎样进行学习的来看下机器是怎样进行学习的。 机器是怎么进行学习的

其实机器和人脑进行学习的主要区别在于 机器学习需要大量的资料

机器学习在日常生活中的应用

机器学习目前已经广泛的应用到了我们的日常生活中,接下来我们看下机器学习在日常生活中的应用

  • 一行判断信用卡发放是否风险
  • Google搜索提示关键词
  • 电商网站的商品推荐
  • 各大App中的推荐如 QQ音乐、小说App的推荐等
  • 以及 语音识别人脸识别
  • 金融预测、医疗诊断、市场分析等
  • 自然语言处理 智能翻译
  • 以及未来会广泛应用的 无人驾驶安全领域医疗上的辅助诊断
  • 矿产勘查、宇宙探索

提到机器学习我们很容易想到 人工智能深度学习数据分析 等概念,那么他们和机器学习有什么关联呢?

数据分析、人工智能、机器学习、深度学习的关系

人工智能 是比机器学习更大的概念,机器学习算法仅仅是机器学习领域中处理问题的一部分方法,除此还有其他的方法解决相关的问题,例如,以搜索为基础的算法。 人工智能

总结一下:

  • 人工智能 指使机器像人一样去决策
  • 机器学习 是实现人工智能的一种技术
  • 机器学习分很多方法(算法),不同的方法解决不同的问题。深度学习是机器学习中的一个分支方法
  • 数据分析 可以帮助你从零进入人工智能时代。如果你喜欢深入技术,学会了数据分析,才能打好基础,去学习机器学习。

机器学习常用算法

  • kNN、线性回归、多项式回归、逻辑回归、模型正则化、PCA
  • SVM、决策树随机森林、集成学习、模型选择、模型调试 、贝叶斯、神经网络

当然还有很多其他的方法,就不一一举例了,后面的文章会详细介绍哦。

常用的机器学习库

scikit-learn 常用它进行分类、特征选择、特征提取和聚集。它拥有易用的一致性API,并提供了很多开箱可用的求值、诊断和交叉验证方法。它底层使用Scipy数据结构,与Python中其余使用Scipy、Numpy、Pandas和Matplotlib进行科学计算的部分适应地很好。

另外,它还包含有限的自然语言处理特征提取能力,以及词袋(bag of words)、tfidf(Term Frequency Inverse Document Frequency算法)、预处理(停用词/stop-words,自定义预处理,分析器)。

此外,如果你想快速对小数据集(toy dataset)进行不同基准测试的话, 它自带的数据集模块提供了常见和有用的数据集。你还可以根据这些数据集创建自己的小数据集,这样在将模型应用到真实世界中之前,你可以按照自己的目的来检验模型是否符合期望。

Statsmodels 是另一个聚焦在统计模型上的强大的库,主要用于预测性和探索性分析。如果你想拟合线性模型、进行统计分析,或者预测性建模,那么Statsmodels非常适合。它提供的统计测试相当全面,覆盖了大部分情况的验证任务。

PyMC 是做贝叶斯曲线的工具。它包含贝叶斯模型、统计分布和模型收敛的诊断工具,也包含一些层次模型。

Shogun 是个聚焦在支持向量机(Support Vector Machines, SVM)上的机器学习工具箱,用C++编写。它正处于积极开发和维护中,提供了Python接口,也是文档化最好的接口。但是,相对于Scikit-learn,它的API比较难用。而且,也没提供很多开箱可用的诊断和求值算法。但是,速度是个很大的优势。

当然还有很多的机器学习库就不一一介绍了,感兴趣可以看下这篇文章哦 传送门

好啦,关于机器学习基础知识就讲解到这里啦,后面我会逐步的深入学习,并把我的学习过程记录下来并分享出来。希望和你一起进步一起拥抱机器学习 💪。