
1. Scikit-learn
Scikit-learn是Python中开源的机器学习程序包。由于免费,因此只要你愿意,就利用Scikit-learn轻松而高效地分析数据。Scikit-learn中包括SVM、随机森林、Gradient Boosting、K-means等分类、回归和聚类的算法。
通常,Scikit-learn和Python中其他的程序包(如Pandas, Numpy, SciPy, Matplotlib等)一起使用。Scikit-learn于2010年首次发布。它是Github上最热门的机器学习程序包之一。
2.机器学习
机器学习是人工智能的组成部分,它是利用计算机系统(而非人为干预),研究算法和统计模型的学科。通过机器学习,我们可以找到数据结构,并由此做出统计推断。
机器学习根据样本数据(也就是所谓“训练数据”)建立数学模型。在此基础上可以进行预测,做出决策。机器学习可以是简单的一元回归模型,也可以是复杂的邮件过滤模型、计算机识别模型甚至自动驾驶模型。
机器学习起源于上世纪50年代。那时候,人们希望计算机程序能够从某些工作中学习到经验,从而改善解决问题的能力。
后来,阿兰·图灵(Alan Turning)写了一篇名为“计算机器与智慧”(Computing Machinery and Intelligence)的论文,开创人工智能的新纪元。从此以后,机器学习从“机器能不能思考?”进化成为“机器能不能做人做的事情?”
机器学习有很多种方法。在监督学习(Supervised learning)中,根据已知的自变量和因变量的数据,建立机器学习模型和算法。例如,如果我们想知道某一张图片中是否包括某一个元素(自变量),那么我们就可以利用包括和不包括这一元素的所有图片作为训练数据,建立监督学习模型。我们可以在每一张图片上标记(因变量)它是否包括这一元素。
然而在有些情况下,自变量数据会有缺失。这时候我们就可以用半监督学习(Semi-supervised learning)的方法。
分类算法和回归算法都是监督学习的方法。当因变量为有限的数值时,我们使用分类算法。比方说,我们养的宠物是猫还是狗,考试是否通过,贷款是否违约等等。
但是,很多情况下,因变量是连续的,这时我们就要用到回归算法。比方说你想利用客户的数量预测销售额,这就可以用回归算法。
除了监督学习和半监督学习,还有非监督学习(Unsupervised learning)。当我们只有自变量,而不知道会有什么结果(因变量)的时候,就要用到非监督学习。非监督学习算法主要用于找到数据结构,常见的方法是聚类分析。我们可以通过非监督学习,降低数据的维度。
3.决策树(Decision tree)
在回归和分类的分析中,有一种基于树(Tree-based)的方法。这种方法可以把预测值分层或者分割成为若干区域。如果要预测某一个值,我们就用这个值对应区域的平均数或者中位数作为预测值。由于分割预测值的方法可以通过“树”表示,所以这一类的方法被成为决策树方法。
决策树方法的优点是比较简单,而且容易解释。但是,它的预测精度不如stepwise regression, ridge regression或者lasso等方法。所以,我们要通过集成学习的方法例如bagging, boosting,或者随机森林(Random forests)提高决策树的精度。这些方法产生了大量的“树”,我们可以把“树”结合起来,得到统一的预测值。
决策树可以用于回归和分类问题。我们先来看一下回归问题,然后在讲分类问题。
时间关系,今天先写到这里。下次我会根据A股数据,用Scikit-learn中的函数,画出决策树!
Python十二钗之Pandas(3):纽约市Airbnb案例
Python十二钗之Scikit-learn :特朗普的就职演说有何不同?
Python十二钗之SciPy:早知有SciPy,何必用美拍?
Python十二钗之Matplotlib:画图原来如此简单!




