谷歌的无人驾驶汽车已经受到了世人很大的关注,但公司的未来却是在机器学习领域,因为这项技术将使电脑更智能,更人性化。——埃里克·施密特(谷歌主席)
我们可能正经历着人类最明确定义的阶段,这个阶段计算机计算从大型主机,到个人电脑,到云计算。但这些并不是根本原因,而是接下来几年中将会发生的。
这个时期使那些像我一样的人们兴奋的是工具和技术的开放,这得以于计算机领域的蓬勃发展。今天,作为一名数据科学家,我能以很低的成本搭建一个拥有复杂算法的数据处理系统。但是达到这样的结果,我也经历了在黑夜中艰苦的探索。
互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习 欢迎进阶中和进想深入大数据的小伙伴加入
这个指导的目标受益人群
这个指导可能是今天我所能给出最有价值的手册
编写这篇指导的目的是为了使所有那些数据科学家和机器学习爱好者在探索这个领域的道路上给予一些帮助,简化一些步骤。通过这篇指导,我会使你能够解决机器学习的一些问题并获得相应的一些经验。我会对几个不同的机器学习算法提供一些概要性的阐述,并且提供Python编码和R语言编码的实现。这应该足够让你开始这个领域的实际的操作。
我特意略去了这些算法背后的统计数据,因为当前你并不需要这些数据。如果你想从统计学上学习这些算法,那你应该去找其他的文献而不是这篇。但是如果你想具备开始机器学习的项目的能力,那你找对地方了。
基本上现在有3种类型机器学习算法:
1.监督式学习
工作原理:此类算法有一个目标/输出变量(依赖变量),该值是通过一组预测因子(独立变量)推测出来的。通过这些预测因子,我们生成方程式得出输入与期望输出的对应关系。整个训练过程会持续到模型能通过训练数据达到一定的精确度。这类监督式学习算法有:回归算法,决策树,随机森林,邻近算法(KNN) 和逻辑回归算法等。
2.非监督式学习
工作原理:此类算法,没有目标或预期输出变量。而是用于聚集不同的组别,其被广泛的应用于根据不同设定对客户人群进行分类。这类非监督式算法有:关联规则(Apriori algorithm),K均值聚类算法。
3. 增强式学习
运用这类算法,机器被训练成为能都做出特定的决策。机器被暴露于一个环境,它在其中通过不断的尝试与错误训练自己。这种机器学习通过过去的经验来试图捕捉最优解来做出最准确的商业决策。这类增强式算法有:马可夫决策过程。
普遍的几种机器学习算法
这是几种被广泛运用的机器学习算法。这些算法能被应用到几乎所有数据问题。
1. 线性回归
2. 逻辑回归
3. 决策树
4. 支持向量机(SVM)
5. 朴素贝叶斯
6. 邻近算法
7. K均值聚类算法
8. 随机森林
9. 降低维度算法
10. Gradient Boost和Adaboost算法
1. 线性回归
这个算法常常通过连续的数值来预测真实的数值(房屋成本,来电数量,总销售额等)。这里我们先需要通过适应一条基准线来建立独立和非独立变量。这条基准线就是回归线,可以通过以下这个线性方程来表示:
Y= a *X + b
我们通过一个儿童实验可以更好的理解线性回归。比如说,你让一个五年级的小朋友为他们班的小朋友进行体重的升序排序,但是不能测量他们的体重。你觉得小朋友会怎么做?他/她可能就是通过观察小朋友们的身高和体型来对他们进行排序。这就是线性回归在生活中的实际例子。小朋友通过实际的身高测量值和建立身高与体重的关系来完成排序任务。可以看成下面这个方程。
-
Y – 非独立变量,因变量
-
a – 斜率
-
X – 独立变量,自变量
-
b – 截距
a和b两个系数是通过最小化数据点与回归线间距离的方差之和得来的。
通过下面的这个例子,我们可以第一处最合适的线性方程 y=0.2811x+13.9。通过这个方程,我们从一个人的身高推测出这个人的体重。
线性回归主要有两种类型:简单线性回归和多元线性回归。简单线性回归只有一个自变量。而多元线性回归有多个自变量。当最佳匹配的那条线正好是多项式或曲线型回归的,那我们就称他们为多项式回归或曲线回归。
Python 代码
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)
R 代码
#Load Train and Test datasets
#Identify feature and response variable(s) and val