学习机器学习之前你应该了解概率,编程的基础知识,掌握java c++ c python 任意一个,还要有一定的数学基础。
基本概念
1、MachineLearning
什么是机器学习:ML(machine learning)
是一个交叉学科,涉及到计算机(软件、硬件)、概率论、统计学、线代、高数、逼近论、凸分析、机械。
通过机器学习,机器不再是通过规则行动,而是通过归纳、统计来进行结果改进。
机器不再需要外部明确的指示,而是通过经验和数据自动进行结果改进。
学习经验,针对任务,执行结果,经验越多,结果越好,则计算机有学习能力。
机器学习是AI的核心。AlphaGo实现的方法不是通过穷举法,而是通过归纳和统计,通过学习过去人类下的棋局中得到的经验,然后来确定自己的下一个棋下在什么地方。所以机器学习出现后人工智能进步了一大步。
机器学习的应用
机器学习的应用很广泛,可以用来做语音识别、自动驾驶、人脸识别、自然语言处理、推荐系统等等。
2、DeepLeaning
深度学习:DL (deep learning)
深度学习是机器学习的一个分支,以神经网络为代表的一类机器学习。比传统的机器学习效果要好很多。它模拟人脑神经的构造,利用神经元通过各种传输算法,使一个输入能产生一个比较准确的输出。
深度学习的发展是伴随大数据产生的,因为深度学习需要大量的数据进行训练,所以进行机器学习的第一步是,必须要有大量的已经存在的数据。
深度学习的基本概念
- 训练集(TraningSamples) :训练机器去学习的数据
- 测试集(TestSamples) :测试模型的稳定性
- 特征值(FeatureVector) :通过向量代表的特征
- 目标概念(Lable) :通过特征值的出来的结果
- 分类 :目标概念为已知类别
- 回归 :目标概念为连续值
- 监督学习 :样本有类别标记
- 无监督学习 :样本无类别标记
常用算法
机器学习的算法有很多很多,想全部掌握有点难。下面是几个比较常用的算法。
监督学习:
- 分类 :KNN (K个nearest neighbors)、DT(Decision Tree)决策树、SVM(surpport vector machine) 、NN(nerual network) 神经网络、NB(naive bayes)贝叶斯
- 回归 :LR(Linear Regression)、NLR (Non-Regression)
非监督学习:
非监督学习算法:K-Means
机器学习的基本步骤
1、获取数据
包括数据获取、清洗、存储
2、数据拆分训练集和测试集。
3、用特征向量训练算法
4、在测试集上评估算法
5、算法迭代与改进
6、实际应用
7、获取更多数据,进行机器学习。
KNN算法
KNN是用未知和已知进行比对。假如我们有一堆的已经分好类的数据,就像一堆分好颜色的豆子。如果我们找到某颗豆子,要知道这颗豆子是什么颜色,当然人眼一看就知道,要让计算机来算的话,最简单的算法就是KNN。
KNN是把离他最近的邻居找出来,比如把离他最近的5个点找出来,然后看这5个点大多数 属于哪一类,就把它归于那个类里。
KNN算法举例
举一个简单的例子:给出一组花的数据,判断它属于哪种花。
样本 :
网上有很多可以用的数据库,这里用的:wiki/lris_flower_data_set
特征值:萼片长度、萼片宽度、花瓣长度、花瓣宽度
label:setosa versicolor virginica (花的种类)
#首先安装类库science hit learning机器学习类库
from sklearn import neighbors
from sklearn import datasots
#取得KNN分类算法
knn = neightbors.KNeighborsClassifier()
#加载数据
iris = datasets.load_iris()
#打印数据
#print(iris)
#用KNN进行数据集的学习
knn.fit(iris.data,iris.target)
#预测输入数据集属于哪一类
predicteLabel = knn.predict([[0.1,0.2,0.3,0.4]])
#打印预测结果
print(predicteLabel)
欢迎访问我们的官方网站与我们交流添加链接描述
海量资源 站内自取