预测
爱哭的猫ff
在校软件工程学生
展开
-
线性回归(标准回归)
今天我们来讨论机器学习的另一个领域---预测;首先我们来讨论利用线性回归来预测数值型数据。利用线性回归进行预测的过程就是求解回归系数的过程,求出回归系数后进行系数与特征值乘积求和即可,这里我们使用最小二乘法进行求解:ex0.txt (提取码:dbe2)def loadDataSet(fileName): numFeat = len(open(fileName).rea原创 2016-03-13 09:21:24 · 1079 阅读 · 0 评论 -
线性回归2(局部加权回归)
上节我们讨论了标准的求回归系数的方法,今天我们来讨论使用局部加权的方法求回归系数。对于线性回归有可能出现欠拟合现象。所以为了避免这种情况的发生我们为每个数据点引入一个权重来降低误差,我们这里计算权重的方法是使用高斯核公式计算。这里使用的数据还是上一节的数据,有需要的可以到上一节下载。def lwlr(testPoint,xArr,yArr,k=1.0): xMat = mat(xArr原创 2016-03-13 10:05:07 · 681 阅读 · 0 评论 -
岭回归
对于样本数据的特征比数据样本点还多的数据我们就没有办法使用标准线性回归和局部加权线性回归来计算,因为没有办法对矩阵求逆。所以这一小节我们引入岭回归来处理这种数据,当然岭回归也可以处理普通的数据。回归系数的计算公式:在这个公式中我们加入了一项:进而就可以对矩阵求逆,是用户指定的值,是一个单位矩阵,通过引入该项可以减少不重要的参数。了解了公式我们就来分析一下代码:def r原创 2016-03-13 11:20:45 · 690 阅读 · 0 评论 -
前向逐步回归
接下来我们讨论另一个简单点的计算回归系数的方法:前向逐步回归。该算法属于贪心算法,经过多次迭代计算出最佳的回归系数,在每次迭代中增加或减少某个权重观察其错误率变化。选择对误差影响小的方向:def stageWise(xArr,yArr,eps=0.01,numIt=100): xMat = mat(xArr); yMat=mat(yArr).T yMean = mean(yMa原创 2016-03-13 12:09:10 · 6858 阅读 · 1 评论 -
回归树-----生成回归树
当数据拥有众多属性并且属性间关系复杂时,前面所讲的回归算法就显得太难了。今天我们就讨论一种树型的回归算法。前面讲过一个树,叫做决策树,构建决策树时需要利用信息增益来计算出最佳的分类特征然后不断的从剩余的特征中找出最佳的分类特征进行分类,这种方法叫做ID3.今天我们构建树所用的切分数据的方法有所不同,用的是二分法。其主体思想也是找到最佳的分类特征:ex00.txt (提取码:b416)fro原创 2016-03-13 16:51:01 · 1509 阅读 · 0 评论 -
模型树------构建模型树
上一节我们讨论了回归树,今天我们来讨论模型树,回归树的叶子节点是数值,模型树的叶子节点是线性函数,这里需要将上一节的函数稍加修改即可,上一节中的叶子节点生成函数、错误率函数需要进行稍加修改。def linearSolve(dataSet): m,n = shape(dataSet) X = mat(ones((m,n))); Y = mat(ones((m,1)))原创 2016-03-13 17:11:01 · 1492 阅读 · 0 评论 -
树回归预测
两种树已经创建完毕,现在我们就进行预测:train.txt (提取码:405c)test.txt (提取码:72d9)def regTreeEval(model, inDat): return float(model)def modelTreeEval(model, inDat): n = shape(inDat)[1] X = mat(ones((1,n+1)原创 2016-03-13 17:37:11 · 965 阅读 · 0 评论 -
Apriori2(关联规则)
上一节我们讨论了频繁项集,这一节我们就用频繁项集挖掘关联规则,频繁项集有支持度的指标,关联规则则有可信度的指标,关于支持度一看很类似贝叶斯公式:{尿布,啤酒}/{尿布}这就算出了尿布的支持度。接下来就来看一看def generateRules(L, supportData, minConf=0.7): bigRuleList = [] for i in range(1, len(原创 2016-03-14 20:24:08 · 633 阅读 · 0 评论