机器学习9树回归

发布时间:2016-12-9 0:15:57 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"机器学习9树回归",主要涉及到机器学习9树回归方面的内容,对于机器学习9树回归感兴趣的同学可以参考一下。

在前面线性回归,线性回归要拟合全部样本,这个是不显示的,因为问题不一定就是线性模型,其中一种可行的方法是将数据集切分成多分易建模的数据,然后利用前面线性回归的方法来建模。如果第一个切分之后的数据还不好拟合的话,那就继续切分。 这就是决策树中一种叫分类回归树CART。这个算法即可以用于分类也可以用于回归。 在这个学习中,介绍了树剪枝算法。 CART算法实现 先看一下之前的树分类 from numpy import * def loadDataSet(fileName): #general function to parse tab -delimited floats dataMat = [] #assume last column is target value fr = open(fileName) for line in fr.readlines(): curLine = line.strip().split('\t') fltLine = map(float,curLine) #map all elements to float() dataMat.append(fltLine) return dataMat def binSplitDataSet(dataSet, feature, value): mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:][0] mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:][0] return mat0,mat1 我们大概看一下结果: >>> import regTrees >>> testMat = mat(eye(4)) >>> testMat matrix([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]]) >>> mat0,mat1 = regTrees.binSplitDataSet(testMat,1,0.5) >>> mat0 matrix([[ 0., 1., 0., 0.]]) >>> mat1 matrix([[ 1., 0., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]]) 第二个函数以第二个特征进行分类,以0.5作为切分。下面给出CART算法流程 具体代码先不贴了,下面看看这个算法的树剪枝算法。 对于一棵树来说,如果节点过多,这个模型可能对数据过拟合,我们之前采用了交叉验证来发现过拟合,这个决策树也是一样。 通过降低决策树的复杂度来避免过拟合的过程称为剪枝。剪枝分为预剪枝跟后剪枝。 学习的这个事需要坚持,这几天感觉状态不佳,看这些算法有点囫囵吞枣了,目前先这样吧,先匆匆看完吧。

上一篇:机器学习8回归问题
下一篇:复撸C系列开篇-Hello World

相关文章

相关评论