ImportError: cannot import name Randomというエラーが出る

投稿者: Anonymous

sklearnでランダムフォレストを使おうとしているのですが,以下のエラーが出てきます。
まず簡単なものでやってみようと思い,ネットに出ているコードをそのまま使用しました。
どうしたらよいでしょうか。

コード

from sklearn.ensemble import RandomForestClassifier

trainingdata = [[1, 1], [2, 2], [-1, -1], [-2, -2]]
traininglabel = [1, 1, -1, -1]
testdata = [[3, 3], [-3, -3]]

model = RandomForestClassifier()
model.fit(trainingdata, traininglabel)
output = model.predict(testdata)

for label in output: print label

ターミナルのエラー表示

Traceback (most recent call last):
  File "estimation.py", line 3, in <module>
    from sklearn.ensemble import RandomForestClassifier
  File "/Library/Python/2.7/site-packages/sklearn/__init__.py", line 57, in <module>
    from .base import clone
  File "/Library/Python/2.7/site-packages/sklearn/base.py", line 12, in <module>
    from .utils.fixes import signature
  File "/Library/Python/2.7/site-packages/sklearn/utils/__init__.py", line 18, in <module>
    from ..externals.joblib import cpu_count
  File "/Library/Python/2.7/site-packages/sklearn/externals/joblib/__init__.py", line 128, in <module>
    from .parallel import Parallel
  File "/Library/Python/2.7/site-packages/sklearn/externals/joblib/parallel.py", line 30, in <module>
    from ._parallel_backends import (FallbackToBackend, MultiprocessingBackend,
  File "/Library/Python/2.7/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 17, in <module>
    from .pool import MemmapingPool
  File "/Library/Python/2.7/site-packages/sklearn/externals/joblib/pool.py", line 23, in <module>
    import tempfile
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 35, in <module>
    from random import Random as _Random
ImportError: cannot import name Random

解決

本家SOで似た症状に困っていたが解決した人がいました.
https://stackoverflow.com/questions/25750961/tweepy-importerror-cannot-import-name-random
この人によると,同じディレクトリ内にrandom.pyという名前のファイルを置いていて,それを意図せず代わりにimportしていたのが原因だったとのことでした.
チェックしてみてください.

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *