在 sklearn 和 skmultilearn 中以离线模式加载数据集

Loading datasets in offline mode in sklearn and skmultilearn

我想在我的 anaconda (python 3.6.5) 项目中使用数据集:情绪、场景和酵母。 我使用了以下代码:

from skmultilearn.dataset import load_dataset
X_train, y_train, feature_names, label_names = load_dataset('emotions', 'train')

当我连接到互联网时,它工作成功, 但是当我离线时,它不起作用! 我已将上述所有 3 个数据集下载到如下文件夹中:

H:\Projects\Datasets

离线时如何将此文件夹用作源数据集? (我正在使用 windows 10)

我下载的数据集扩展名是:.rar 像这样:emotions.rar、scene.rar和yeast.rar,我已经从http://mulan.sourceforge.net/datasets-mlc.html

下载了它们

您可以,但您首先需要知道数据集的存储路径。 为此,您可以加载一次并获取路径。此路径永远不会改变,因此您只需执行以下操作一次即可获得所需的路径。接下来,知道了路径,就可以离线任意加载了。

示例

from sklearn.datasets import load_iris
import pandas as pd, os

#get the path
path = load_iris()['filename']
print(path)

#offline load
df = pd.read_csv(path)

#the path: THIS IS WHAT YOU NEED
main_path_with_datasets = os.path.dirname(path)

一旦您获得 main_path_with_datasets,即通过执行 main_path_with_datasets = os.path.dirname(path),您现在将拥有路径。您可以使用它来加载所有可用的下载数据集。

os.listdir(main_path_with_datasets)

['digits.csv.gz',
 'wine_data.csv',
 'diabetes_target.csv.gz',
 'iris.csv',
 'breast_cancer.csv',
 'diabetes_data.csv.gz',
 'linnerud_physiological.csv',
 'linnerud_exercise.csv',
 'boston_house_prices.csv']

编辑 skmultilearn

from skmultilearn.dataset import load_dataset_dump

path = 'C:\Users\myname\scikit_ml_learn_data\'

X, y, feature_names, label_names = load_dataset_dump(path + 'emotions-train.scikitml.bz2')