ImportError:无法导入名称“评估”(来自意外导入评估)

Posted

技术标签:

【中文标题】ImportError:无法导入名称“评估”(来自意外导入评估)【英文标题】:ImportError: cannot import name 'evaluate' ( from surprise import evaluate ) 【发布时间】:2020-03-25 11:43:33 【问题描述】:
from surprise import Reader, Dataset, SVD
from surprise import evaluate
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-12-6d771df269b8> in <module>()
----> 1 from surprise import evaluate

ImportError: cannot import name 'evaluate'

第一行,从意外导入 Reader, Dataset, SVD 工作正常。 就是这样,它无法从惊喜包中导入评估。

我已经使用 conda 安装了 scikit-surprise。 我认为它已成功安装。

【问题讨论】:

【参考方案1】:

从 2020 年 1 月起,请改为执行以下操作...

from surprise import SVD
from surprise import Dataset
from surprise.model_selection import cross_validate

# Load the dataset (download it if needed)
data = Dataset.load_builtin('ml-100k')

# Use the famous SVD algorithm
algo = SVD()

# Run 5-fold cross-validation and then print results
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

【讨论】:

【参考方案2】:

根据文档,evaluate() 方法是 deprecated in version 1.0.5(功能上替换为 model_selection.cross_validate())和 removed in version 1.1.0,这可能是您安装的。

【讨论】:

【参考方案3】:

正如@merv 所述,evaluate() 方法在版本 1.0.5 中已弃用。这是一个使用scikit-surprise==1.1.1 测试的工作示例:

import pandas as pd
from surprise import SVD, Reader
from surprise import Dataset
from surprise.model_selection import cross_validate

reader = Reader()
csv = pd.read_csv('yourdata.csv')

# Loading local dataset
data = Dataset.load_from_df(csv, reader)

# Use SVD algorithm or other models
model = SVD()

# cross-validation with no. of kfold=5 (can be changed per your need)
cross_validate(model, data, measures=['rmse', 'mae'], cv=5)

训练模型

data_train = data.build_full_trainset()
model.fit(data_train)

预测

model.predict(uid=<e.g. 1>, iid=<e.g. 2>)

您可以阅读documentation了解更多详情。

【讨论】:

以上是关于ImportError:无法导入名称“评估”(来自意外导入评估)的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Tasks ImportError:无法导入名称“resource_pb2”

ImportError:无法导入名称发现

ImportError:无法导入名称 VarianceThreshold

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称“AFAVSignature”

Django 'ImportError: 无法导入名称 url'