日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树回归源码分析(1)

發(fā)布時間:2024/9/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树回归源码分析(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

線性回歸包含了強(qiáng)大的方法,但是需要擬合所有的數(shù)據(jù)集(局部加權(quán)線性回歸除外),但是當(dāng)數(shù)據(jù)特征復(fù)雜時,構(gòu)建全局模型就難了,況且實際生活很多問題都是非線性的,不可能使用全局線性模型來擬合所有的數(shù)據(jù)。
現(xiàn)有可以將數(shù)據(jù)集切分成很多易建模的數(shù)據(jù),然后再利用線性回歸技術(shù)建模,以就得到了CART——Classification And Regression Tree(分類回歸樹)的樹構(gòu)建算法,該算法既可以用于分類還可以用于回歸。

二元切分法:即每次把數(shù)據(jù)集切成兩份。如果數(shù)據(jù)的某特征值等于切分所要求的值,那么這些數(shù)據(jù)就進(jìn)人樹的左子樹,反之則進(jìn)人樹的右子樹。

使用二元切分法則易于對樹構(gòu)建過程進(jìn)行調(diào)整以處理連續(xù)型特征。具體的處理方法是:如果特征值大于給定值就走左子樹,否則就走右子樹。

CART算法只做二元切分,所以這里可以固定樹的數(shù)據(jù)結(jié)構(gòu)。樹包含左鍵和右鍵,可以存儲另一棵子樹或者單個值。字典還包含特征和特征值這兩個鍵,它們給出切分算法所有的特征和特征值。

1. CART算法用于回歸

幾點要明確的地方:

  • ID3算法會在給定節(jié)點時計算數(shù)據(jù)的混亂度,而連續(xù)數(shù)值的混亂度的度量用方差(平方誤差的均值),這里用總方差(平方誤差的總值),總方差可以通過均方差乘以數(shù)據(jù)集中的樣本點的個數(shù)來得到。
  • 源代碼有錯誤的地方,解決方法:源代碼錯誤修正
# -*- coding: utf-8 -*- """ Created on Fri Nov 03 10:35:00 2017""" from numpy import *# 加載數(shù)據(jù)函數(shù) def loadDataSet(fileName): dataMat = [] fr = open(fileName)for line in fr.readlines():curLine = line.strip().split('\t') # 讀取以tab鍵為分割符的文件fltLine = map(float,curLine) # 將每行映射為浮點數(shù)dataMat.append(fltLine) # 把所有的數(shù)據(jù)保存到一起return dataMat# 二元切分?jǐn)?shù)據(jù)集 def binSplitDataSet(dataSet, feature, value): # 三個參數(shù):數(shù)據(jù)集合,待切分的特征,和該特征的某個值mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:] # 數(shù)組過濾,mat0是特征數(shù)列中大于value的所有樣本行mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:] # 得到和feature相對應(yīng)的滿足要求的樣本return mat0,mat1 # 返回兩個子集,分別是針對某特征列劃分的不同樣本集# 生成葉節(jié)點 def regLeaf(dataSet): return mean(dataSet[:,-1]) # 在回歸樹種返回目標(biāo)變量的均值# 誤差估計函數(shù),計算連續(xù)值的混亂度 def regErr(dataSet): # var()均方差函數(shù),要返回總方差,所以要用均方差乘以數(shù)據(jù)集中的樣本個數(shù)return var(dataSet[:,-1]) * shape(dataSet)[0] # 用最佳方式切分?jǐn)?shù)據(jù)集和生成相應(yīng)的葉節(jié)點。leafType,errType是對函數(shù)的引用 def chooseBestSplit(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)):tolS = ops[0]; tolN = ops[1] # tolS容許的誤差下降值,tolN切分的最少樣本數(shù)if len(set(dataSet[:,-1].T.tolist()[0])) == 1: # 如果特征數(shù)目只剩一個,就不再切分,直接返回print 'back from here 1 ..'return None, leafType(dataSet)m,n = shape(dataSet) # 當(dāng)前數(shù)據(jù)集的大小S = errType(dataSet) # 計算誤差,s用于和新切分誤差對比bestS = inf; bestIndex = 0; bestValue = 0 for featIndex in range(n-1): # 遍歷所有的特征,除了最后一個for splitVal in set(dataSet[:,featIndex].T.A.tolist()[0]): # 針對每個特征,在所有樣本中查看不同的特征值 mat0, mat1 = binSplitDataSet(dataSet, featIndex, splitVal) # 將數(shù)據(jù)集切分兩份 if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 切分的最少樣本數(shù) continue newS = errType(mat0) + errType(mat1) # 計算切分的總方差 if newS < bestS: print 'featIndex,splitVal:',featIndex,'and', splitValbestIndex = featIndex # 如果新的總方差小于當(dāng)前的方差,則返回特征索引和切分特征值bestValue = splitValbestS = newS if (S - bestS) < tolS: # 如果容錯的誤差下降值變化不大,就停止切分,直接創(chuàng)造葉節(jié)點print 'back from here 2 ..'return None, leafType(dataSet) mat0, mat1 = binSplitDataSet(dataSet, bestIndex, bestValue)if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 如果切分的數(shù)據(jù)集很小則退出直接創(chuàng)造葉節(jié)點print 'back from here 3 ..'return None, leafType(dataSet)return bestIndex,bestValue # 如果所有的提前終止條件都不滿足,就返回切分特征和特征值# 找到數(shù)據(jù)的最佳二元切分方式 def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)): # ops是一個包含樹構(gòu)建所需的參數(shù)元組# 把數(shù)據(jù)集分成兩部分,如果滿足停止條件返回None和某類模型的值# 滿足停止條件:feat是None,val是某類模型的值feat, val = chooseBestSplit(dataSet, leafType, errType, ops)print 'feat, val :',feat, 'and',valif feat == None:print 'back creatTree..'return val # 回歸樹:模型是常數(shù),模型樹:模型是線性方程 retTree = {} retTree['spInd'] = featretTree['spVal'] = vallSet, rSet = binSplitDataSet(dataSet, feat, val) # 不滿足停止條件時,lSet, rSet是兩個數(shù)據(jù)集retTree['left'] = createTree(lSet, leafType, errType, ops) # 遞歸調(diào)用createTree()函數(shù)retTree['right'] = createTree(rSet, leafType, errType, ops)return retTree # 主函數(shù) testMat=mat(eye(4)) mat0,mat1=binSplitDataSet(testMat,1,0.5) print 'mat0:',mat0 print 'mat1:',mat1myDat=loadDataSet('ex00.txt') myMat=mat(myDat) print createTree(myMat)

運行結(jié)果:

mat0: [[ 0. 1. 0. 0.]] mat1: [[ 1. 0. 0. 0.][ 0. 0. 1. 0.][ 0. 0. 0. 1.]] featIndex,splitVal: 0 and 0.302001 featIndex,splitVal: 0 and 0.55299 featIndex,splitVal: 0 and 0.378595 featIndex,splitVal: 0 and 0.406649 featIndex,splitVal: 0 and 0.475976 featIndex,splitVal: 0 and 0.48813 feat, val : 0 and 0.48813 featIndex,splitVal: 0 and 0.936783 featIndex,splitVal: 0 and 0.727098 featIndex,splitVal: 0 and 0.72312 featIndex,splitVal: 0 and 0.645762 featIndex,splitVal: 0 and 0.648675 featIndex,splitVal: 0 and 0.625336 featIndex,splitVal: 0 and 0.622398 featIndex,splitVal: 0 and 0.620599 back from here 2 .. feat, val : None and 1.01809676724 back creatTree.. featIndex,splitVal: 0 and 0.302001 featIndex,splitVal: 0 and 0.347837 featIndex,splitVal: 0 and 0.346986 featIndex,splitVal: 0 and 0.188218 featIndex,splitVal: 0 and 0.048014 featIndex,splitVal: 0 and 0.343479 back from here 2 .. feat, val : None and -0.0446502857143 back creatTree.. {'spInd': 0, 'spVal': 0.48813, 'right': -0.044650285714285719, 'left': 1.0180967672413792}

可以由運行結(jié)果看出代碼的具體運行過程:

  • 葉節(jié)點是相應(yīng)的目標(biāo)數(shù)據(jù)集的均值
  • 注意幾個切分停止得條件和返回葉節(jié)點

2. 樹剪枝

通過降低決策樹的復(fù)雜度來避免過擬合的過程稱為剪枝,在上面的提前終止條件實際是一種預(yù)剪枝的操作。另一種是使用測試集和訓(xùn)練集,稱為后剪枝。

  • 樹構(gòu)建算法其實對輸入的tolS和tolN非常敏感,也就是對提前終止的人為輸入?yún)?shù),其中tolS對誤差的數(shù)量級十分敏感,所以需要我們手動調(diào)節(jié)參數(shù),但是通過不斷修改停止條件來得到合理的結(jié)果并不是很好的辦法,甚至有時候我們不確定到底我們需要什么樣的結(jié)果,于是有了通過測試集來對樹進(jìn)行剪枝,也就避免了用戶指定參數(shù)。

后剪枝

函數(shù)prune()的偽代碼如下:

基于已有的樹切分測試數(shù)據(jù):

  • 如果存在任一子集是一棵樹,則在該子集遞歸剪枝過程
  • 計算將當(dāng)前兩個葉節(jié)點合并后的誤差
  • 計算不合并的誤差
  • 如果合并會降低誤差的話,就將葉節(jié)點合并
# -*- coding: utf-8 -*- """ Created on Fri Nov 03 10:35:00 2017""" from numpy import *# 加載數(shù)據(jù)函數(shù) def loadDataSet(fileName): dataMat = [] fr = open(fileName)for line in fr.readlines():curLine = line.strip().split('\t') # 讀取以tab鍵為分割符的文件fltLine = map(float,curLine) # 將每行映射為浮點數(shù)dataMat.append(fltLine) # 把所有的數(shù)據(jù)保存到一起return dataMat# 二元切分?jǐn)?shù)據(jù)集 def binSplitDataSet(dataSet, feature, value): # 三個參數(shù):數(shù)據(jù)集合,待切分的特征,和該特征的某個值mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:] # 數(shù)組過濾,mat0是特征數(shù)列中大于value的所有樣本行mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:] # 得到和feature相對應(yīng)的滿足要求的樣本return mat0,mat1 # 返回兩個子集,分別是針對某特征列劃分的不同樣本集# 生成葉節(jié)點 def regLeaf(dataSet): return mean(dataSet[:,-1]) # 在回歸樹種返回目標(biāo)變量的均值# 誤差估計函數(shù),計算連續(xù)值的混亂度 def regErr(dataSet): # var()均方差函數(shù),要返回總方差,所以要用均方差乘以數(shù)據(jù)集中的樣本個數(shù)return var(dataSet[:,-1]) * shape(dataSet)[0] # 用最佳方式切分?jǐn)?shù)據(jù)集和生成相應(yīng)的葉節(jié)點。leafType,errType是對函數(shù)的引用 def chooseBestSplit(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)):tolS = ops[0]; tolN = ops[1] # tolS容許的誤差下降值,tolN切分的最少樣本數(shù)if len(set(dataSet[:,-1].T.tolist()[0])) == 1: # 如果特征數(shù)目只剩一個,就不再切分,直接返回print 'back from here 1 ..'return None, leafType(dataSet)m,n = shape(dataSet) # 當(dāng)前數(shù)據(jù)集的大小S = errType(dataSet) # 計算誤差,s用于和新切分誤差對比bestS = inf; bestIndex = 0; bestValue = 0 for featIndex in range(n-1): # 遍歷所有的特征,除了最后一個for splitVal in set(dataSet[:,featIndex].T.A.tolist()[0]): # 針對每個特征,在所有樣本中查看不同的特征值 mat0, mat1 = binSplitDataSet(dataSet, featIndex, splitVal) # 將數(shù)據(jù)集切分兩份 if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 切分的最少樣本數(shù) continue newS = errType(mat0) + errType(mat1) # 計算切分的總方差 if newS < bestS: print 'featIndex,splitVal,newS:',featIndex,'and', splitVal,'and', newSbestIndex = featIndex # 如果新的總方差小于當(dāng)前的方差,則返回特征索引和切分特征值bestValue = splitValbestS = newS if (S - bestS) < tolS: # 如果容錯的誤差下降值變化不大,就停止切分,直接創(chuàng)造葉節(jié)點print 'back from here 2 ..'return None, leafType(dataSet) mat0, mat1 = binSplitDataSet(dataSet, bestIndex, bestValue)if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 如果切分的數(shù)據(jù)集很小則退出直接創(chuàng)造葉節(jié)點print 'back from here 3 ..'return None, leafType(dataSet)return bestIndex,bestValue # 如果所有的提前終止條件都不滿足,就返回切分特征和特征值# 找到數(shù)據(jù)的最佳二元切分方式 def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)): # ops是一個包含樹構(gòu)建所需的參數(shù)元組# 把數(shù)據(jù)集分成兩部分,如果滿足停止條件返回None和某類模型的值# 滿足停止條件:feat是None,val是某類模型的值feat, val = chooseBestSplit(dataSet, leafType, errType, ops)print 'feat, val :',feat, 'and',valif feat == None:print 'back creatTree..'return val # 回歸樹:模型是常數(shù),模型樹:模型是線性方程 retTree = {} retTree['spInd'] = featretTree['spVal'] = vallSet, rSet = binSplitDataSet(dataSet, feat, val) # 不滿足停止條件時,lSet, rSet是兩個數(shù)據(jù)集retTree['left'] = createTree(lSet, leafType, errType, ops) # 遞歸調(diào)用createTree()函數(shù)retTree['right'] = createTree(rSet, leafType, errType, ops)return retTree # 回歸樹剪枝函數(shù) def isTree(obj): # 測試一個輸入變量是否是樹類型return (type(obj).__name__=='dict') # 判斷當(dāng)前處理的節(jié)點是否是葉節(jié)點def getMean(tree): # 葉節(jié)點處理函數(shù),是一個遞歸函數(shù),從上往下遍歷樹直到葉節(jié)點為止if isTree(tree['right']): tree['right'] = getMean(tree['right'])if isTree(tree['left']): tree['left'] = getMean(tree['left'])return (tree['left']+tree['right'])/2.0 # 返回整個樹的平均值def prune(tree, testData): # testData待測試的數(shù)據(jù),tree是由訓(xùn)練集生成的if shape(testData)[0] == 0: # 如果沒有測試數(shù)據(jù),則對樹進(jìn)行塌陷處理return getMean(tree) if (isTree(tree['right']) or isTree(tree['left'])): # 判斷當(dāng)前分支是否是樹lSet, rSet = binSplitDataSet(testData, tree['spInd'], tree['spVal'])if isTree(tree['left']): # 左樹剪枝tree['left'] = prune(tree['left'], lSet) # 反復(fù)調(diào)用prune()對測試數(shù)據(jù)進(jìn)行切分if isTree(tree['right']): # 右樹剪枝tree['right'] = prune(tree['right'], rSet)# 如果左右兩個不再是子樹,就進(jìn)行合并if not isTree(tree['left']) and not isTree(tree['right']):lSet, rSet = binSplitDataSet(testData, tree['spInd'], tree['spVal'])errorNoMerge = sum(power(lSet[:,-1] - tree['left'],2)) \+sum(power(rSet[:,-1] - tree['right'],2)) # 此處用的是平方誤差treeMean = (tree['left']+tree['right'])/2.0errorMerge = sum(power(testData[:,-1] - treeMean,2))if errorMerge < errorNoMerge: # 比較剪枝前后的誤差變化print "merging"return treeMeanelse: return treeelse: return tree# 主函數(shù) myDat2=loadDataSet('ex2.txt') myMat2=mat(myDat2) myTree=createTree(myMat2,ops=(0,1)) # createTree(myMat)返回的值是dict類型的 myDatTest=loadDataSet('ex2test.txt') myMat2Test=mat(myDatTest) print '..............................' print prune(myTree,myMat2Test)

運行結(jié)果:

merging merging merging merging merging merging merging merging merging merging merging merging merging ... 'spVal': 0.965969, 'right': {'spInd': 0, 'spVal': 0.956951, 'right': 111.2013225, 'left': {'spInd': 0, 'spVal': 0.958512, 'right': 135.83701300000001, 'left': {'spInd': 0, 'spVal': 0.960398, 'right': 123.559747, 'left': 112.386764}}}, 'left': 92.523991499999994}}}}

可以看出大量的節(jié)點已經(jīng)被剪枝掉了,雖然看著還是那么多的節(jié)點,但是確實已經(jīng)減少了很多了,一般情況下為了尋求最佳模型可以同時使用預(yù)剪枝和后剪枝兩種技術(shù)。

注意:

  • 其中的塌陷處理,自上而下的遍歷樹到葉節(jié)點為止,如果找到兩個葉節(jié)點則計算它們的平均值,返回整個樹的平均值。
  • 注意其中的遞歸調(diào)用剪枝處理,對數(shù)據(jù)結(jié)構(gòu)的理解有所要求。

3. 模型樹

簡單來說就是把原來的葉節(jié)點由常數(shù)值變?yōu)榉侄尉€性函數(shù),所謂的分段線性就是指模型由多個線性片段組成。也就是在某些情況下,分段線性要比很多節(jié)點組成的一顆大樹更容易解釋。

  • 模型樹的可解釋性優(yōu)于回歸樹的,另外模型樹也具有更高的預(yù)測準(zhǔn)確度。
  • 前面用于回歸樹的誤差計算方法這里不能再用。稍加變化,對于給定的數(shù)據(jù)集,應(yīng)該先用線性的模型來對它進(jìn)行擬合,然后計算真實的目標(biāo)值與模型預(yù)測值間的差值。最后將這些差值的平方求和就得到了所需的誤差

在CART算法用于回歸代碼中加入下面的函數(shù),并且把主函數(shù)改為如下:

# 模型樹的葉節(jié)點生成函數(shù) def linearSolve(dataSet): m,n = shape(dataSet)X = mat(ones((m,n))); Y = mat(ones((m,1))) X[:,1:n] = dataSet[:,0:n-1]; Y = dataSet[:,-1] # 將數(shù)據(jù)集格式化成目標(biāo)變量和自變量 xTx = X.T*Xif linalg.det(xTx) == 0.0: # 這個矩陣是奇異的,不能求逆raise NameError('This matrix is singular, cannot do inverse,\n\try increasing the second value of ops')ws = xTx.I * (X.T * Y) # 線性回歸的系數(shù)return ws,X,Ydef modelLeaf(dataSet): # 生成葉節(jié)點模型ws,X,Y = linearSolve(dataSet)return ws # 返回回歸系數(shù)def modelErr(dataSet):ws,X,Y = linearSolve(dataSet)yHat = X * wsreturn sum(power(Y - yHat,2)) # 在給定數(shù)據(jù)集上計算誤差,返回平方誤差# 主函數(shù)# 模型樹 myMat2=mat(loadDataSet('exp2.txt')) modelTree=createTree(myMat2, modelLeaf,modelErr,(1,10)) print '模型樹:',modelTree

運行結(jié)果:

模型樹: {'spInd': 0, 'spVal': 0.285477, 'right': matrix([[ 3.46877936],[ 1.18521743]]), 'left': matrix([[ 1.69855694e-03],[ 1.19647739e+01]])}

由運行的結(jié)果可以看出:
分段線性生成的模型:
y=3.468+1.18521743x
y=0.0016985+11.96477x
而數(shù)據(jù)是由模型:
y=3.5+1.0x
y=0.0+12x再加上高斯噪聲生成的。

兩個模型已經(jīng)非常接近了。

4. 樹回歸的比較

模型樹、回歸樹以及第8章里的其他模型,哪一種模型更好呢?一個比較客觀的方法是計算相關(guān)系數(shù),也稱為R2值。該相關(guān)系數(shù)可以通過調(diào)用Numpy庫中的命令corrcoef(yHat,y,rowvar)來求解。

# -*- coding: utf-8 -*- """ Created on Fri Nov 03 10:35:00 2017""" from numpy import *# 加載數(shù)據(jù)函數(shù) def loadDataSet(fileName): dataMat = [] fr = open(fileName)for line in fr.readlines():curLine = line.strip().split('\t') # 讀取以tab鍵為分割符的文件fltLine = map(float,curLine) # 將每行映射為浮點數(shù)dataMat.append(fltLine) # 把所有的數(shù)據(jù)保存到一起return dataMat# 二元切分?jǐn)?shù)據(jù)集 def binSplitDataSet(dataSet, feature, value): # 三個參數(shù):數(shù)據(jù)集合,待切分的特征,和該特征的某個值mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:] # 數(shù)組過濾,mat0是特征數(shù)列中大于value的所有樣本行mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:] # 得到和feature相對應(yīng)的滿足要求的樣本return mat0,mat1 # 返回兩個子集,分別是針對某特征列劃分的不同樣本集# 生成葉節(jié)點 def regLeaf(dataSet): return mean(dataSet[:,-1]) # 在回歸樹種返回目標(biāo)變量的均值# 誤差估計函數(shù),計算連續(xù)值的混亂度 def regErr(dataSet): # var()均方差函數(shù),要返回總方差,所以要用均方差乘以數(shù)據(jù)集中的樣本個數(shù)return var(dataSet[:,-1]) * shape(dataSet)[0] # 用最佳方式切分?jǐn)?shù)據(jù)集和生成相應(yīng)的葉節(jié)點。leafType,errType是對函數(shù)的引用 def chooseBestSplit(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)):tolS = ops[0]; tolN = ops[1] # tolS容許的誤差下降值,tolN切分的最少樣本數(shù)if len(set(dataSet[:,-1].T.tolist()[0])) == 1: # 如果特征數(shù)目只剩一個,就不再切分,直接返回print 'back from here 1 ..'return None, leafType(dataSet)m,n = shape(dataSet) # 當(dāng)前數(shù)據(jù)集的大小S = errType(dataSet) # 計算誤差,s用于和新切分誤差對比bestS = inf; bestIndex = 0; bestValue = 0 for featIndex in range(n-1): # 遍歷所有的特征,除了最后一個for splitVal in set(dataSet[:,featIndex].T.A.tolist()[0]): # 針對每個特征,在所有樣本中查看不同的特征值 mat0, mat1 = binSplitDataSet(dataSet, featIndex, splitVal) # 將數(shù)據(jù)集切分兩份 if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 切分的最少樣本數(shù) continue newS = errType(mat0) + errType(mat1) # 計算切分的總方差 if newS < bestS: print 'featIndex,splitVal:',featIndex,'and', splitValbestIndex = featIndex # 如果新的總方差小于當(dāng)前的方差,則返回特征索引和切分特征值bestValue = splitValbestS = newS if (S - bestS) < tolS: # 如果容錯的誤差下降值變化不大,就停止切分,直接創(chuàng)造葉節(jié)點print 'back from here 2 ..'return None, leafType(dataSet) mat0, mat1 = binSplitDataSet(dataSet, bestIndex, bestValue)if (shape(mat0)[0] < tolN) or (shape(mat1)[0] < tolN): # 如果切分的數(shù)據(jù)集很小則退出直接創(chuàng)造葉節(jié)點print 'back from here 3 ..'return None, leafType(dataSet)return bestIndex,bestValue # 如果所有的提前終止條件都不滿足,就返回切分特征和特征值# 找到數(shù)據(jù)的最佳二元切分方式 def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1,4)): # ops是一個包含樹構(gòu)建所需的參數(shù)元組# 把數(shù)據(jù)集分成兩部分,如果滿足停止條件返回None和某類模型的值# 滿足停止條件:feat是None,val是某類模型的值feat, val = chooseBestSplit(dataSet, leafType, errType, ops)print 'feat, val :',feat, 'and',valif feat == None:print 'back creatTree..'return val # 回歸樹:模型是常數(shù),模型樹:模型是線性方程 retTree = {} retTree['spInd'] = featretTree['spVal'] = vallSet, rSet = binSplitDataSet(dataSet, feat, val) # 不滿足停止條件時,lSet, rSet是兩個數(shù)據(jù)集retTree['left'] = createTree(lSet, leafType, errType, ops) # 遞歸調(diào)用createTree()函數(shù)retTree['right'] = createTree(rSet, leafType, errType, ops)return retTree # 模型樹的葉節(jié)點生成函數(shù) def linearSolve(dataSet): m,n = shape(dataSet)X = mat(ones((m,n))); Y = mat(ones((m,1))) X[:,1:n] = dataSet[:,0:n-1]; Y = dataSet[:,-1] # 將數(shù)據(jù)集格式化成目標(biāo)變量和自變量 xTx = X.T*Xif linalg.det(xTx) == 0.0: # 這個矩陣是奇異的,不能求逆raise NameError('This matrix is singular, cannot do inverse,\n\try increasing the second value of ops')ws = xTx.I * (X.T * Y) # 線性回歸的系數(shù)return ws,X,Y# 生成葉節(jié)點模型,返回回歸系數(shù) def modelLeaf(dataSet): ws,X,Y = linearSolve(dataSet)return ws # 在給定數(shù)據(jù)集上計算誤差,返回平方誤差 def modelErr(dataSet):ws,X,Y = linearSolve(dataSet)yHat = X * wsreturn sum(power(Y - yHat,2)) def isTree(obj):return (type(obj).__name__=='dict')# 對回歸樹節(jié)點進(jìn)行預(yù)測 def regTreeEval(model, inDat):return float(model) # 返回樹預(yù)測的值# 對模型樹節(jié)點預(yù)測 def modelTreeEval(model, inDat):n = shape(inDat)[1] # 格式化處理X = mat(ones((1,n+1))) # 在原數(shù)據(jù)矩陣上增加第0列X[:,1:n+1]=inDatreturn float(X*model)# 自頂向下的遍歷整棵樹,直到命中葉節(jié)點為止 def treeForeCast(tree, inData, modelEval=regTreeEval):if not isTree(tree): # 判斷是否是樹字典,如果不是就返回return modelEval(tree, inData)if inData[tree['spInd']] > tree['spVal']:if isTree(tree['left']): return treeForeCast(tree['left'], inData, modelEval)else: return modelEval(tree['left'], inData)else:if isTree(tree['right']): return treeForeCast(tree['right'], inData, modelEval)else: return modelEval(tree['right'], inData)def createForeCast(tree, testData, modelEval=regTreeEval):m=len(testData)yHat = mat(zeros((m,1)))for i in range(m):yHat[i,0] = treeForeCast(tree, mat(testData[i]), modelEval)return yHat# 利用訓(xùn)練數(shù)據(jù)構(gòu)造回歸樹 trainMat=mat(loadDataSet('bikeSpeedVsIq_train.txt')) testMat=mat(loadDataSet('bikeSpeedVsIq_test.txt')) myTree=createTree(trainMat,ops=(1,20)) # 利用訓(xùn)練數(shù)據(jù)構(gòu)造回歸樹 yHat=createForeCast(myTree, testMat[:,0]) coefficient_regtree=corrcoef(yHat,testMat[:,1],rowvar=0)[0,1]# 利用訓(xùn)練數(shù)據(jù)構(gòu)造模型樹 myTree=createTree(trainMat,modelLeaf,modelErr,ops=(1,20)) # 利用訓(xùn)練數(shù)據(jù)構(gòu)造回歸樹 yHat=createForeCast(myTree, testMat[:,0],modelTreeEval) coefficient_modeltree=corrcoef(yHat,testMat[:,1],rowvar=0)[0,1]print 'regtree coefficient:',coefficient_regtree print 'modeltree coefficient:',coefficient_modeltree

運行結(jié)果:

... regtree coefficient: 0.964085231822 modeltree coefficient: 0.976041219138

我們知道,R2的值越接近1.0越好,所以從上面的結(jié)果可以看出模型樹的結(jié)果比回歸樹的要好,而線性回歸的效果還不如回歸樹。

總結(jié)

以上是生活随笔為你收集整理的树回归源码分析(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲精欧美一区二区精品 | 国产69精品久久久久9999apgf | 四虎影视4hu4虎成人 | 天堂av色婷婷一区二区三区 | 中文字幕亚洲欧美 | 一区二区在线影院 | 深爱激情婷婷网 | 国产精品原创 | 国产黄在线 | 四季av综合网站 | 精品视频99 | 色综合久久中文字幕综合网 | 国产精品久久久久久久久久尿 | 久久视频 | 天天射天天 | 亚洲综合在线五月 | 黄色软件网站在线观看 | 久久国产高清视频 | 国产精品久一 | 98涩涩国产露脸精品国产网 | 亚洲精品乱码久久久久久久久久 | 日日夜夜添 | 国产精品久久久久免费 | 好看av在线| 久久精品8 | 国产在线精品一区 | 久久a免费视频 | 亚洲精品456在线播放乱码 | av日韩不卡| 久久美女精品 | 天天爱天天舔 | 国产女人40精品一区毛片视频 | 久久人人爽人人 | 狠狠躁夜夜躁人人爽超碰91 | 91九色国产视频 | 中文av字幕在线观看 | av免费电影在线 | 亚洲精品久久久久中文字幕二区 | 欧美做受xxx | 欧美精品一区二区免费 | 成人午夜电影在线观看 | 色综合天天做天天爱 | 国产精品一区二区三区视频免费 | 国产99自拍 | 婷婷伊人综合 | 91看国产| 亚洲精品美女久久 | 99精彩视频在线观看免费 | 欧美性黄网官网 | 日韩在线观看电影 | 成人一区影院 | 五月开心婷婷 | 亚洲欧美日韩中文在线 | 在线播放亚洲 | 99色在线观看视频 | 久久一区二区三区超碰国产精品 | 欧美一区二区精美视频 | 久久 亚洲视频 | 国产一区在线视频观看 | 国产乱视频 | 国产不卡网站 | 久久精品久久99 | 亚洲视频在线播放 | 久久综合色婷婷 | 国产老熟| 美女福利视频一区二区 | 黄色三级av | 91在线小视频 | 成年人免费在线播放 | 深夜精品福利 | 麻豆影视网站 | 激情图片qvod | 香蕉影院在线播放 | 国产涩涩在线观看 | 欧美性粗大hdvideo | 日韩网站在线观看 | 97成人在线免费视频 | av福利第一导航 | 久久精品影片 | 波多野结衣在线视频免费观看 | 91精品国产综合久久福利不卡 | 深夜免费福利网站 | 97视频在线播放 | 日韩高清不卡一区二区三区 | 中文字幕亚洲国产 | 中文资源在线官网 | 欧美日韩在线观看视频 | 日韩av电影免费在线观看 | 国产中文伊人 | 欧美最猛性xxxxx免费 | 日韩免费网站 | 国产精品久久久久久久久久新婚 | 国产高清视频网 | 韩国av三级| 免费精品视频在线观看 | 久草在线99 | 在线观看免费一区 | 久久国产视频网 | 亚洲精品久久久久www | 4438全国亚洲精品观看视频 | 免费视频二区 | a√天堂中文在线 | 精品久久久免费视频 | 成 人 黄 色视频免费播放 | 日韩午夜小视频 | 99视频在线免费看 | 日本在线观看视频一区 | 国产精品一区二区三区免费看 | 久久久久国产一区二区三区 | 亚洲精品女人久久久 | 国产精品久久久久久久久久久久久久 | 国产精品欧美久久久久无广告 | 手机在线看永久av片免费 | 丝袜av一区 | 99久久久久国产精品免费 | 午夜 在线 | 超碰夜夜| 在线看免费 | 日韩电影黄色 | 最新国产精品久久精品 | 97超视频| 97成人免费 | 婷婷丁香导航 | 免费网站黄色 | 日韩在线观看中文字幕 | 欧美夫妻生活视频 | 亚洲国产中文在线 | 97电影手机版 | 久久电影国产免费久久电影 | 韩国av免费观看 | 日韩av播放在线 | 久久久国产精品网站 | 四季av综合网站 | 国产一区二区网址 | 色中文字幕在线观看 | 在线观看www.| 91麻豆精品国产自产在线 | 九月婷婷综合网 | 99热这里只有精品在线观看 | 狠狠艹夜夜干 | 亚洲国产经典视频 | 亚洲免费在线观看视频 | 日韩在线播放欧美字幕 | 久久久久久久久久久久久久av | 天天色综合三 | 国产午夜精品理论片在线 | 99精品在线视频观看 | 日本中文字幕免费观看 | 亚洲欧洲精品一区 | 成人影视免费 | 四虎影视国产精品免费久久 | 国产精品18久久久久久首页狼 | 一区二区精品在线观看 | 中文字幕一二三区 | 国产在线精品国自产拍影院 | 日韩中文在线观看 | 成 人 黄 色 片 在线播放 | 欧美日韩1区2区 | 天天操比 | 天天草天天干天天射 | 日韩av女优视频 | 日日干视频 | 五月天免费网站 | 婷婷色综合网 | 亚洲www天堂com | 日韩一级网站 | 免费看v片网站 | 亚州精品在线视频 | 九九免费在线观看视频 | 欧美一级视频一区 | 中文av资源站 | 一区二区视频在线免费观看 | 成人三级网站在线观看 | 超碰在线日韩 | 国产成人精品综合久久久久99 | 国产成人精品一区二区三区福利 | 成人免费网站视频 | 一级黄色大片 | 免费在线激情电影 | 亚洲一二区视频 | 国产精品激情偷乱一区二区∴ | 911av视频 | 欧美精品黑人性xxxx | 激情综合站 | 久99久在线| 国产精品av一区二区 | 涩涩网站在线 | 日韩理论在线播放 | 亚洲精品视频在线看 | 国产综合精品一区二区三区 | 国产精品尤物视频 | 91精品国产91| 久久免费在线观看 | 免费看一级| 亚洲五月综合 | 又爽又黄在线观看 | 美女免费视频网站 | 久久久污 | 日韩在线免费小视频 | 日韩一二区在线 | 在线播放亚洲激情 | 中文字幕日韩无 | 国产成人一区二区三区在线观看 | 国产精品成人国产乱一区 | 色婷婷激婷婷情综天天 | www黄| 亚洲视屏| 国产一级免费视频 | 中文字幕制服丝袜av久久 | 免费看的国产视频网站 | 久久综合婷婷综合 | 亚洲欧洲一级 | 在线观看激情av | 免费在线激情视频 | 91九色在线观看视频 | 久热免费在线观看 | 国产精品 亚洲精品 | 久久久久国产精品一区二区 | www.夜夜骑.com| 久久成人午夜视频 | 亚洲a成人v| 成年人免费看的视频 | 黄色综合 | 国产婷婷在线观看 | 国产精品3区 | 免费在线黄网 | 又污又黄的网站 | 亚州欧美精品 | 日本三级不卡 | 色网站国产精品 | 久久99久国产精品黄毛片入口 | 99这里只有久久精品视频 | 久久国产精品久久久 | 久久精品99久久 | 丝袜美腿亚洲综合 | 成年人在线免费视频观看 | 操操操夜夜操 | 成年人三级网站 | 国产又黄又爽无遮挡 | 在线观看免费黄色 | 五月婷婷操 | 亚洲一区美女视频在线观看免费 | 国产手机视频 | 尤物九九久久国产精品的分类 | 中文视频在线看 | 丁香激情综合 | 三上悠亚在线免费 | 亚洲精品免费观看视频 | 丁香九月婷婷 | 亚洲一级黄色av | 久久99精品国产麻豆宅宅 | 午夜黄色一级片 | 可以免费观看的av片 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲精品影视在线观看 | 国产剧情一区 | 午夜免费在线观看 | 涩涩伊人 | 天天射天天操天天 | 国产伦精品一区二区三区四区视频 | 中文字幕一区二区三区四区在线视频 | 成人蜜桃网| 91久久丝袜国产露脸动漫 | 免费a级观看 | 久久久久国产视频 | 日韩在线观 | 日韩中文免费视频 | 狠狠狠色丁香婷婷综合久久五月 | 国内精品中文字幕 | 日韩欧美一区二区三区在线 | 超碰电影在线观看 | 国产成人精品999在线观看 | 激情婷婷av | 欧美日韩高清在线一区 | 国产色啪 | 国产盗摄精品一区二区 | 玖草影院 | av电影 一区二区 | www.xxxx欧美| 国产高清在线 | 国产盗摄精品一区二区 | 午夜精品视频免费在线观看 | 亚洲精品在线一区二区 | 国产伦精品一区二区三区在线 | 96久久欧美麻豆网站 | 五月开心综合 | 日韩欧美精品在线观看视频 | 国产免费黄视频在线观看 | 69久久夜色精品国产69 | 黄色片免费电影 | 91精品电影 | 亚洲亚洲精品在线观看 | 特级毛片爽www免费版 | av成人在线网站 | 狠狠网站| 国内外成人在线 | 国产精品1000 | 久久精品视频日本 | 亚洲一一在线 | 久久99中文字幕 | 久久久91精品国产一区二区精品 | 美女国产在线 | 深爱开心激情网 | 色开心| 色婷婷国产精品一区在线观看 | 国产高清免费 | 美州a亚洲一视本频v色道 | www.久久久久 | 五月激情亚洲 | 美女视频黄的免费的 | 97av影院 | 深爱激情站 | 久久网站免费 | 国产成人精品女人久久久 | 最新久久久 | 天天综合天天综合 | 黄色aaa级片 | 国语自产偷拍精品视频偷 | 国产区免费在线 | 91精品国自产在线观看欧美 | 91成人在线视频观看 | 国内精品小视频 | 久久伊人综合 | 久久av观看 | 国产精品女同一区二区三区久久夜 | 日本黄色免费看 | 成年人在线免费看视频 | 国产99久久久国产精品成人免费 | 欧美精品小视频 | 精品国产伦一区二区三区观看说明 | av噜噜噜在线播放 | 九九热在线观看视频 | 91桃色在线观看视频 | 久久久久婷 | 午夜色大片在线观看 | 国产福利一区二区三区视频 | 成年人免费电影在线观看 | 国产精品久久久电影 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲开心激情 | 欧美精品久久久久久久久久白贞 | 999抗病毒口服液 | 91亚州| 国产96av | 黄色一级免费电影 | 91天天操 | 亚洲激情 在线 | 日韩精品视频一二三 | 免费看v片 | 日韩av成人 | 精品国产日本 | 91av大全| 97香蕉超级碰碰久久免费软件 | 91一区啪爱嗯打偷拍欧美 | 涩五月婷婷 | 久久这里只有精品视频99 | 综合色播| 久久a级片| h视频在线看 | 99热手机在线观看 | 51久久成人国产精品麻豆 | 99精品视频免费观看 | 免费高清在线视频一区· | 成人午夜电影在线播放 | 久久免费视频网站 | 日韩av进入 | 亚洲好视频 | 久久激情视频 | 五月激情丁香婷婷 | 黄色软件大全网站 | 在线观看aaa | 婷婷丁香激情 | 亚洲综合在线视频 | 国产麻豆视频网站 | 99免在线观看免费视频高清 | 天天操天天弄 | 亚洲日本黄色 | 粉嫩av一区二区三区四区 | 91麻豆.com | 夜夜躁日日躁狠狠久久av | 精品在线不卡 | 久久99精品久久久久久久久久久久 | 久久伊人色综合 | 99精品视频在线观看免费 | 91久久国产综合精品女同国语 | 天天操人 | 亚洲国产合集 | 色婷婷一 | av亚洲产国偷v产偷v自拍小说 | 在线成人中文字幕 | 欧美另类高清 | 久久综合欧美精品亚洲一区 | 9色在线视频 | 亚洲视频在线播放 | 国产一级视频免费看 | 久久情网 | 亚洲一区二区黄色 | 97在线超碰| 伊人影院99 | 天天操天天射天天 | 精品亚洲va在线va天堂资源站 | 日韩欧美在线综合网 | 日韩一区二区三区免费电影 | 久久精品亚洲国产 | 欧美与欧洲交xxxx免费观看 | 亚洲精品欧洲精品 | 欧美日韩高清在线 | 五月婷婷激情综合 | 久久久久久免费 | 精品久久久久久久久久国产 | 午夜视频在线观看一区 | 去干成人网 | 日本黄色免费电影网站 | 免费在线91 | 久久久午夜精品福利内容 | 久久优 | 亚洲 欧洲 国产 精品 | 国产日产精品久久久久快鸭 | 2019天天干天天色 | 色综合久久精品 | 超碰97在线资源站 | 天天操天天干天天摸 | 色播五月激情综合网 | 国产香蕉97碰碰碰视频在线观看 | 麻豆免费在线播放 | 91麻豆国产 | 三级动态视频在线观看 | 黄网在线免费观看 | 国产精品久久久一区二区 | 少妇性bbb搡bbb爽爽爽欧美 | 亚洲精品久久久蜜桃 | 久久精品资源 | 免费三级av | 在线观看视频 | 顶级欧美色妇4khd | 亚洲欧美综合精品久久成人 | 免费高清影视 | 天天干天天操天天操 | 国产在线污| 91片黄在线观 | 久久久精品国产一区二区 | 成人在线视频观看 | 欧美午夜精品久久久久 | 51精品国自产在线 | av性在线| 国产亚洲视频系列 | 欧美一级久久 | 福利网址在线观看 | 国产麻豆电影在线观看 | 免费高清在线观看成人 | 亚洲欧美乱综合图片区小说区 | 国产精品自拍av | 久久免费视频2 | 在线中文字幕播放 | 亚洲视频在线视频 | 国产一级电影 | 天天射天天爱天天干 | 中文有码在线 | 曰韩在线 | 日韩mv欧美mv国产精品 | 成人啪啪18免费游戏链接 | 成人精品一区二区三区中文字幕 | 国产综合小视频 | 草免费视频 | 久久视频一区二区 | 一区二区不卡高清 | 最近免费观看的电影完整版 | 亚洲精品91天天久久人人 | 国产精品午夜在线观看 | 久久国产二区 | 日韩在线 一区二区 | 精品久久久久久久久久岛国gif | 国产成人亚洲精品自产在线 | 欧美老人xxxx18 | 黄色成人av在线 | 欧美美女视频在线观看 | 最新午夜 | 欧美精品三级 | 国产精品精品久久久 | 久久在视频 | 91在线免费公开视频 | 99精品国产高清在线观看 | 亚洲精品视频在线观看免费 | 91在线porny国产在线看 | 97在线观看免费高清 | 欧美国产精品一区二区 | 91人人在线 | 日韩黄色av网站 | 超碰97.com | 国产一级做a | 亚洲天堂网站视频 | 97人人澡人人爽人人模亚洲 | 久草在在线 | 丁香六月欧美 | 欧美福利片在线观看 | 波多野结衣资源 | 六月久久婷婷 | 亚洲午夜不卡 | 亚洲综合精品在线 | 黄色a级片在线观看 | 在线 精品 国产 | 久久久国产高清 | 国产精品久久久久久久毛片 | 国产精品高清在线观看 | 成人a毛片 | 一级淫片在线观看 | 久草在线资源观看 | 天天干天天搞天天射 | 色网av| 97超视频免费观看 | 欧美另类高潮 | 欧美巨大荫蒂茸毛毛人妖 | 欧美最猛性xxxx | 99av国产精品欲麻豆 | 午夜资源站 | 日韩色在线观看 | 亚洲精品午夜久久久 | 免费一级日韩欧美性大片 | 婷婷丁香激情综合 | 精品国产一区二区三区噜噜噜 | 国产一区不卡在线 | 综合伊人av | 日韩欧美视频免费观看 | 亚洲精品国偷拍自产在线观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 色婷婷狠狠五月综合天色拍 | 国产免费观看高清完整版 | 色婷在线 | 婷婷久久一区二区三区 | 天天天天天天天操 | av在线播放观看 | 国产精品嫩草影院9 | 激情久久一区二区三区 | av高清网站在线观看 | 最新日韩视频在线观看 | 久久久久国产精品免费免费搜索 | 中文av字幕在线观看 | 日本精品久久久久中文字幕5 | 一区二区影院 | 日日夜夜狠狠干 | 91精选在线观看 | 亚洲 综合 激情 | 久久精品99国产精品日本 | 一本—道久久a久久精品蜜桃 | 91精品视频一区 | 国际精品久久久 | 国产亚洲成av人片在线观看桃 | 欧美日韩在线观看不卡 | 日日日爽爽爽 | 国产精品一区二区在线观看免费 | 国产精品久久99综合免费观看尤物 | 日韩精品网址 | 一区三区视频在线观看 | 久久免费看毛片 | 国产小视频在线看 | 在线一区观看 | 色天天综合久久久久综合片 | 国产亚洲91 | 欧美视频18| 久久精品国产成人 | 久久视频这里有精品 | 97干com| 蜜臀久久99精品久久久无需会员 | 日韩视频免费 | 97成人精品区在线播放 | 精品国产免费人成在线观看 | 99色视频在线| 久久精品日本啪啪涩涩 | 中文字幕一区二区三区乱码在线 | 日韩欧美在线国产 | 一区二区高清在线 | 狠狠狠狠狠狠狠 | av 在线观看 | 中文字幕高清视频 | 少妇性bbb搡bbb爽爽爽欧美 | 国产一区二区三区在线免费观看 | 国产最顶级的黄色片在线免费观看 | 在线成人小视频 | 亚洲精品美女在线 | 国产黄色片免费 | 尤物97国产精品久久精品国产 | 精品在线一区二区 | 99精品国产99久久久久久福利 | 夜夜操天天干, | 美女免费黄视频网站 | 免费在线观看av不卡 | 最近日本mv字幕免费观看 | 91视视频在线直接观看在线看网页在线看 | 日韩精品在线免费播放 | 奇米四色影狠狠爱7777 | 一区二区三区日韩视频在线观看 | 九九日韩 | 西西444www大胆高清图片 | 91成人区| 九九欧美视频 | 久久国产二区 | 在线高清| 国产色女人| 欧美在线观看小视频 | 国产精品久久久一区二区 | 欧美日韩视频在线观看免费 | 99久久精品国产网站 | 亚洲春色综合另类校园电影 | 五月天网站在线 | 黄色一级大片在线观看 | 在线国产黄色 | 亚洲免费av在线播放 | 日韩欧美在线第一页 | 久久色在线播放 | 欧美最猛性xxxxx免费 | 2021国产在线 | 国产尤物视频在线 | 午夜av激情| 久久国产精品免费观看 | 中文字幕首页 | 色综久久| 九九热免费视频在线观看 | 国产一级特黄毛片在线毛片 | 麻豆视频在线免费 | 99久久精品网 | 日韩免费高清在线观看 | 啪啪资源 | 综合天堂av久久久久久久 | 91精品免费视频 | 五月综合激情网 | 91免费高清观看 | 色婷婷av一区 | 亚洲成av人片 | 久久久麻豆精品一区二区 | 日韩免费在线 | 国产精品网红直播 | 97国产超碰在线 | 激情深爱 | 国产99精品在线观看 | 久久久精品一区二区 | 国产三级国产精品国产专区50 | 日本韩国欧美在线观看 | 日韩性片 | 激情欧美一区二区三区免费看 | 91精品福利在线 | 国产色在线,com | 中文字幕在线有码 | 色悠悠久久综合 | 天天操天天干天天综合网 | 97视频人人 | 一二三精品视频 | 亚洲五月婷 | 久久久午夜精品理论片中文字幕 | 日本三级国产 | 国产资源精品 | av片在线观看免费 | www.亚洲精品 | 最近日本字幕mv免费观看在线 | 亚洲精品在线观看视频 | 久久久久久久久黄色 | 大型av综合网站 | 国产欧美日韩视频 | 国产999免费视频 | 亚洲精品国产精品国自产观看 | 日韩在线观看你懂得 | 国产精品毛片一区视频播不卡 | 黄色网址中文字幕 | 国产精品视频永久免费播放 | 天天操天天色天天射 | 91精品久 | 五月天视频网 | 成人免费视频免费观看 | 99在线精品视频在线观看 | 欧美精品在线一区 | 亚洲h在线播放在线观看h | 97操操 | 久久久久久免费网 | 久久精品久久久久久久 | 亚洲aⅴ乱码精品成人区 | 免费av网址在线观看 | 天堂av网在线 | 91久久偷偷做嫩草影院 | 精品久久久影院 | 国产黄大片 | 亚洲国产成人久久 | 91传媒视频在线观看 | 欧美久久久久久久久中文字幕 | 97香蕉久久国产在线观看 | 天天干天天弄 | 日韩欧美黄色网址 | 久久久久亚洲精品男人的天堂 | 久久精品久久久久久久 | 黄色片网站av | 99综合久久 | 久久国产精品免费看 | 欧美极品少妇xxxx | 麻豆免费视频网站 | 美女黄色网在线播放 | 色在线亚洲 | 91成年人在线观看 | 狠狠ri| 国产资源在线观看 | 日韩,精品电影 | 午夜久久美女 | 91精品入口 | 免费特级黄毛片 | 四虎在线观看精品视频 | 久久男人中文字幕资源站 | 日韩高清免费在线观看 | 国产高清精 | 久久精品美女视频网站 | 91最新网址 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 一区二区 不卡 | 国内精品久久久久影院一蜜桃 | 中文字幕亚洲欧美日韩 | 五月婷久 | 久久精品五月 | 麻豆传媒一区二区 | 国产精品亚洲片夜色在线 | 色综合中文字幕 | 伊人久操 | 日本精品一区二区三区在线播放视频 | 中文字幕在线观看一区二区三区 | 色综合久久久久综合 | 国产91全国探花系列在线播放 | 久久99精品热在线观看 | 日韩av中文在线观看 | www天天干| 国产黄网站在线观看 | 国产色a在线观看 | 91理论电影 | 国产精品久久一卡二卡 | 一区二区视频在线播放 | 黄色成人影院 | 日韩区欠美精品av视频 | 欧美了一区在线观看 | 黄色a视频免费 | 日韩在线观看的 | 天天操网 | 国产精品 9999 | 国产精品久久久久久久久久东京 | 国产精品美女视频网站 | 中文区中文字幕免费看 | 夜夜操天天操 | 00av视频 | 久久久免费看 | www黄色av | 97免费公开视频 | 久热av在线| 极品美女被弄高潮视频网站 | 久久夜夜夜 | 狠狠干.com| 色综合久久88| 婷婷在线播放 | 国产日本亚洲高清 | 亚洲精品高清视频在线观看 | 色综合a| 日韩av电影一区 | 久草视频中文 | 国产视频在 | 国产又黄又爽又猛视频日本 | 欧美日韩中文字幕综合视频 | 日韩精品一区二区三区高清免费 | 在线观看av片 | 久久免费视频3 | 91精品网站在线观看 | 欧美成年人在线观看 | 亚洲人成网站精品片在线观看 | 久久综合九色综合97婷婷女人 | 日韩视频专区 | 国产午夜精品一区二区三区在线观看 | 黄色电影在线免费观看 | 亚洲欧洲一级 | 免费视频久久 | 99riav1国产精品视频 | 在线黄色av电影 | 国产在线中文 | av在线免费播放网站 | 91亚·色 | 伊人色综合久久天天 | 五月婷婷综合网 | 国产玖玖在线 | 成人va视频 | 欧美a级一区二区 | av中文字幕在线电影 | 久草免费看 | 久久不射电影院 | 三日本三级少妇三级99 | 日韩精品 在线视频 | 天堂av观看 | 在线观看av免费 | 狠狠久久综合 | .国产精品成人自产拍在线观看6 | 天天操天天干天天摸 | 麻豆免费视频网站 | 久艹在线播放 | 亚洲va男人天堂 | 国产亚洲在线 | 美女网站视频免费黄 | 免费h精品视频在线播放 | 午夜黄色大片 | 久久久99精品免费观看 | 国产视频精品在线 | 国产成人精品女人久久久 | 韩国一区二区三区在线观看 | 中文字幕av一区二区三区四区 | 久久r精品 | 亚洲精品www. | 一区二区三区日韩视频在线观看 | 亚洲精品视频在线观看视频 | 91精品一区二区三区久久久久久 | 色婷在线| 婷婷网在线| 欧美在线1区 | 中文字幕在线看片 | 丁香激情网| 亚洲黄色激情小说 | 麻豆国产视频 | 91人人爽久久涩噜噜噜 | 久久久久国产精品免费网站 | 亚州精品视频 | 97电影在线看视频 | 亚洲精品免费在线播放 | 色吊丝在线永久观看最新版本 | 91免费观看视频网站 | 91丨九色丨首页 | 免费日韩 精品中文字幕视频在线 | 亚洲午夜精品电影 | 九九免费在线视频 | 91桃色视频| 在线观看国产一区二区 | 亚洲国产欧洲综合997久久, | 伊人国产在线播放 | 欧美日韩不卡一区二区 | 午夜视频在线观看一区二区三区 | 日韩视频www | 国产成人精品亚洲a | 久久国产精品久久精品国产演员表 | 人人澡超碰碰97碰碰碰软件 | 国产精品影音先锋 | 午夜精品久久久久久中宇69 | 精品在线一区二区 | 91成人网在线观看 | 最新国产精品久久精品 | 亚洲色图美腿丝袜 | 91在线视频在线 | 亚洲精品国偷自产在线91正片 | 国产一级高清视频 | 成 人 免费 黄 色 视频 | 四虎国产精品成人免费影视 | 久久久免费观看视频 | 黄色福利网站 | 一本一道波多野毛片中文在线 | 91免费版在线观看 | 国产精选在线观看 | 在线观看国产区 | 天堂视频中文在线 | 久久久激情视频 | 国产在线不卡精品 | 一级免费观看 | 免费高清无人区完整版 | 免费日韩精品 | 国产精品一区二区三区四 | 日韩电影在线观看一区 | 五月开心六月婷婷 | 国产成人a v电影 | 深夜免费网站 | 久草资源在线观看 | 天天伊人狠狠 | 精品久久久久久久久亚洲 | 免费在线中文字幕 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 国产一区二区三区四区在线 | 国产美女精品人人做人人爽 | 成人一级影视 | 男女日麻批 | 97人人网| 97色国产| 国产在线精品国自产拍影院 | 丝袜一区在线 | 欧美一二三视频 | 99精品欧美一区二区三区黑人哦 | 男女全黄一级一级高潮免费看 | 中文字幕乱偷在线 | 波多野结衣视频一区 | 玖玖玖在线 | 欧美激情视频一区二区三区免费 | 精品久久久久久一区二区里番 | 午夜色站| 日韩久久精品一区二区 | 成人在线视频一区 | 亚洲精品tv | 久草在线 | 欧美日韩国产精品一区 | 久久精品一区二区三区中文字幕 | 日本99干网 | 国产黄色片网站 | 国产亚洲日本 | 韩国精品一区二区三区六区色诱 | 五月婷婷色播 | 伊人黄色网 | 色人久久 | 热久久国产精品 | av在线网站免费观看 | 免费观看第二部31集 | 国产精品亚洲精品 | .国产精品成人自产拍在线观看6 | 日韩免费看 | 国产品久精国精产拍 | 日韩一区在线播放 | 日韩在线一区二区免费 | 97精品超碰一区二区三区 | 国产亚洲精品久久久久久大师 | 中文字幕日韩免费视频 | 欧美精品xxx | 999ZYZ玖玖资源站永久 | 免费在线成人 | 狠狠色综合网站久久久久久久 | 在线视频 国产 日韩 | 亚洲成人xxx| 美女网站黄在线观看 | 免费国产ww | 欧洲精品码一区二区三区免费看 | 国产成人亚洲精品自产在线 | 欧美一级性 | 韩日成人av | 亚洲精品国产免费 | 国产一区二区三区高清播放 | 91伊人影院 | 欧美一区二区三区在线看 | 亚洲 精品在线视频 | 啪啪免费视频网站 | 国产免费资源 | 激情五月激情综合网 | 91成人在线观看高潮 | 国产亚洲在线 | 亚洲激情av| 国产精品免费在线 | 日本aaaa级毛片在线看 | 国产视频亚洲视频 | 看全黄大色黄大片 | 成年免费在线视频 | 国产一区免费看 | 亚洲综合色激情五月 | 久热av在线 | 久久综合狠狠综合久久综合88 | 久久成人国产精品免费软件 | 亚洲精品乱码久久久久久9色 | 久久色在线播放 | 日韩欧美一区二区在线播放 | 久热这里有精品 | www.成人精品| 精品国产91亚洲一区二区三区www | 免费在线一区二区 | 亚洲黄色大片 | 亚洲va欧美va | 欧美九九九 | 成人小电影在线看 | va视频在线观看 | 五月天六月婷 | 国产又黄又爽无遮挡 | 激情在线免费视频 | 免费国产一区二区 | 国产精品毛片一区二区 | 欧美日韩国产在线精品 | 免费人做人爱www的视 | 成人小视频在线观看免费 | 93久久精品日日躁夜夜躁欧美 | 韩国av三级 | 国产色视频网站2 | 99视频 | 精品欧美一区二区精品久久 | 黄色小说18 | 日韩大片在线免费观看 | 国产黄色美女 | 黄色三级久久 | 日日夜夜网 | 波多野结衣视频一区二区 | 亚洲高清在线视频 | 国产日产av| 亚洲天天在线日亚洲洲精 | 久草视频播放 | 午夜视频福利 | 国产一级免费在线 | 中文字幕av在线不卡 | 黄色毛片在线观看 | 欧美日韩在线视频一区 | 综合五月婷婷 | 天天射天天干天天 | 黄色国产成人 | 久草新在线 | 久久精品电影 | 精品国产一区二区三区蜜臀 | 成人网在线免费视频 | 亚洲欧美国内爽妇网 | 成人一区影院 | 97国产大学生情侣酒店的特点 | 99久久er热在这里只有精品66 | 国产特级毛片aaaaaaa高清 | 久久久久久久亚洲精品 | 日韩av不卡在线 | 国产精品久久久久久久久久久久久 |