谷歌董事长施密特曾指出,尽管谷歌的无人驾驶汽车和机器人项目备受关注,但这家公司的真正未来在于机器学习技术。机器学习是一种使计算机更加智能和个性化的技术。
或许我们正处在人类历史的关键时期:从大型计算机到个人电脑,再到现在的云计算。重要的是未来的变革,而不是过去的成就。
技术的普及使得像我这样的人对这个时代充满期待。计算技术的发展同样令人兴奋。如今,作为一名数据科学家,我可以用复杂的算法构建数据处理机器,这可以带来不错的收入。但要做到这一点并不容易,我也曾经历过无数个艰难的夜晚。
这篇指南旨在简化数据科学家和机器学习爱好者的知识获取路径。通过实际操作,读者可以获得宝贵的实战经验。本文提供了几种机器学习算法的高级理解和实现这些算法的R和Python代码。这些内容应该足够读者自行实践。
为了便于阅读,本文省略了部分技术细节。如果你希望深入了解算法背后的数学原理,可以参考其他资料。但如果你想在开展机器学习项目前做好准备,那么这篇文章非常适合你。
总的来说,有三种主要的机器学习算法:
工作原理:该算法包含一个目标变量或结果变量。这些变量由一系列已知的预测变量(自变量)来预测。通过这些变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上达到预期的准确性。常见的监督式学习算法包括:回归、决策树、随机森林、K-近邻算法、逻辑回归等。
工作原理:在这个算法中,没有目标变量或结果变量需要预测或估算。该算法用于不同群体的聚类分析。这种分析方式广泛应用于客户细分,将用户分成不同的群体。常见的非监督式学习算法包括:关联规则和K-均值算法。
工作原理:该算法通过反复试错来训练机器进行决策。机器从过去的经历中学习,并尝试利用学到的知识做出正确的商业决策。常见的强化学习算法包括马尔可夫决策过程。
以下是常用的一些机器学习算法,它们几乎可以应用于所有数据问题:
线性回归通常用于根据连续变量估计实际数值(如房价、呼叫次数、总销售额等)。我们通过拟合最佳直线来建立自变量和因变量之间的关系。这条最佳直线称为回归线,用Y=a*X+b的线性方程表示。
线性回归的一个实际例子是,一个五年级的孩子可以根据观察同学的身高和体型来大致判断他们的体重。这种关系可以用以下方程描述:
系数a和b可以通过最小二乘法获得。
例如,我们找到最佳拟合直线y=0.2811x+13.9。已知一个人的身高,我们可以用这条方程预测其体重。
线性回归主要有两种类型:一元线性回归和多元线性回归。一元线性回归只有一个自变量,而多元线性回归则包含多个自变量。在拟合最佳直线时,也可以拟合多项式或曲线回归,这些被称为多项式回归或曲线回归。
```python
from sklearn import linear_model
xtrain = inputvariablesvaluestrainingdatasets ytrain = targetvariablesvaluestrainingdatasets xtest = inputvariablesvaluestest_datasets
linear = linear_model.LinearRegression()
linear.fit(xtrain, ytrain) score = linear.score(xtrain, ytrain)
print("系数:", linear.coef) print("截距:", linear.intercept)
predicted = linear.predict(x_test) ```
```r
xtrain = inputvariablesvaluestrainingdatasets ytrain = targetvariablesvaluestrainingdatasets xtest = inputvariablesvaluestest_datasets
linear = linear_model.LinearRegression()
fit = lm(ytrain ~ xtrain, data = train) summary(fit)
coefficients = coef(fit) intercept = coefficients[1] slopes = coefficients[-1]
predicted = predict(linear, newdata = x_test) ```