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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

《机器学习实战》第九章

發(fā)布時間:2024/9/30 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《机器学习实战》第九章 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在學習《Machine Learning in Active》的第九章時,由于自己使用的是python3所以在測試代碼時出現(xiàn)了不少錯誤,下面就做一下整合,并給出解決方法

1.NameError: name 'errType' is not defined

最開始提示NameError: name 'errType' is not defined錯誤,所以我就把函數(shù)createTree()和chooseBestSplit()的聲明改了一下。

原來的是:

def createTree(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4)):

def chooseBestSplit(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4)):

我的改法:

def?createTree(dataSet, ops = (1, 4)):

def?createTree(dataSet, ops = (1, 4)):

但是要記住要把兩個函數(shù)中出現(xiàn)的所有l(wèi)eafType換成regLeaf,所有errType換成regErr,一定要注意,改了之后還要注意createTree()函數(shù)是一個迭代函數(shù),函數(shù)里面的迭代語句里的四個參數(shù)也要改成2個,還有就是之后的算法中會修改leafType和errType的值,因為我們把它去掉了,所以要修改算法中的每一個leafType和errType

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

注意:后來發(fā)現(xiàn),一定要把regLeaf和regErr放在createTree函數(shù)之前就可以編譯通過了,這樣就不用一直去修改函數(shù)名了

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

2.TypeError: unhashable type: 'matrix'

然后就出現(xiàn)了這個錯誤TypeError: unhashable type: 'matrix',錯誤出現(xiàn)在for splitVal in set(dataSet[:,featIndex]):這一條語句上,問題出現(xiàn)在set()函數(shù)的使用上,代碼上邊有這樣一條語句:if len(set(dataSet[:,-1].T.tolist()[0])) == 1:

所以很容易就可以把原語句改成

for splitVal in set(dataSet[:,featIndex].T.tolist()[0]):

3.IndexError: index 0 is out of bounds for axis 0 with size 0

這個錯誤沒啥可說的,直接把函數(shù)binSplitDataSet()里的mat0和mat1賦值語句的最后的[0]去掉就可以了

4.TypeError: unsupported operand type(s) for /: 'map' and 'int'

?這個錯誤困擾我很久,最后才想到它的錯誤不在提示的那一行,而是在最開始文件導入的函數(shù)loadDataSet()里,將

fltLine = map(float, curLine)

改成

fltLine = list(map(float, curLine))

就可以了


總結

以上是生活随笔為你收集整理的《机器学习实战》第九章的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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