《机器学习实战》第十章错误总结
生活随笔
收集整理的這篇文章主要介紹了
《机器学习实战》第十章错误总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這一章完成后發(fā)現(xiàn)自己的基礎(chǔ)還不牢固,先來復(fù)習(xí)下基礎(chǔ)
( )———元組tuples
[ ]———列表list
{ }———字典dict
尤其是列表list,一定要看清有多少個[ ]
下邊的錯誤就是由于基礎(chǔ)不牢導(dǎo)致的
return np.matrix(centList), clusterAssment提示錯誤ValueError: matrix must be 2-dimensional
或者TypeError: list indices must be integers or slices, not tuple
找到centList的賦值語句
根據(jù)錯誤提示可以看出是centList的數(shù)值有問題,加一條語句
print(centList)可以看到輸出大概是這樣的
[matrix([[-122.54868607, 45.51882187]]), matrix([[-122.65589505, 45.49371211]]), matrix([[-122.842918, 45.646831]]), matrix([[-122.7680632, 45.4665528]]), matrix([[-122.68216889, 45.56573522]])]所以很容易就知道怎么改了,賦值語句不應(yīng)該把matrix型數(shù)據(jù)直接賦過去,應(yīng)該先把數(shù)據(jù)轉(zhuǎn)換格式再賦值,即
centList[bestCentToSplit] = bestNewCents[0, :].tolist() centList.append(bestNewCents[1, :].tolist())我滿心歡喜地以為應(yīng)該成功了,結(jié)果提示錯誤
ValueError: matrix must be 2-dimensional輸出的centList為
[[[-122.55924017857146, 45.52238271428571]], [[-122.65691647999998, 45.50956080000001]], [[-122.755383, 45.5949895]], [[-122.7680632, 45.4665528]], [[-122.40092849999999, 45.46897]]]根據(jù)輸出我們可以很容易知道多了一個[ ],使得centList的秩為1,所以接下來就是怎么去掉一個[ ],我想了很久(基礎(chǔ)不牢固),后來查了一些資料,發(fā)現(xiàn)應(yīng)該改成這樣
centList[bestCentToSplit] = bestNewCents[0, :].tolist()[0] centList.append(bestNewCents[1, :].tolist()[0])然后,成功。
總結(jié)
以上是生活随笔為你收集整理的《机器学习实战》第十章错误总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自带的sum()函数和num
- 下一篇: 机器学习第十二章