1. ホーム
  2. Machine Learning

[機械学習実践編 - ch09] TypeError: Unsupported operand type(s) for /: map' と 'int' です。

2022-02-18 15:49:17
<パス

このコマンドの最後の行の実行に問題がありました。

>>>reload(regTrees)
<module 'regTrees' from 'regTrees.pyc'>
>>> from numpy import *
The data from figure 9.1 is stored in a file called ex00.txt.
>>> myDat=regTrees.loadDataSet('ex00.txt')
>>> myMat = mat(myDat)
>>> regTrees.createTree(myMat)


オンラインの方法を調べたところ、loadDataSet()関数内のmapメソッドはintに対応しておらず、オンラインでは以下のようにmapの外側にリストを追加することで解決しました。

試してみたけど、やっぱりダメ!!!!

その後、自分でコードを変更したところ、問題なく動作することがわかりました!!! 以下のように動作します。

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 = []
        for i in curLine:
           fltLine.append(float(i))
        dataMat.append(fltLine)
    return dataMat