10 days ago

最近做一个数据挖掘项目,用到sklearn机器学习库,导入20newsgroup数据集总是下载缓慢没反应
于是开始考虑手动下载这个数据集

1.下载20newsbydate.tar.gz文件到文件夹 ~/scikit_learn_data/20news_home/

2.查看当前python路径,保持备用

which python
/Users/lee/.virtualenvs/ai/bin/python

进入文件夹 /Users/lee/.virtualenvs/ai/
(其中,lee是我的mac用户名,ai是虚拟环境名称)

3.修改sklearn原始代码

接着刚刚的文件路径,打开文件 Lib/python/site-packages/sklearn/datasets\twenty_newsgroups.py
找到download_20newsgroups()函数,注释掉下面的代码

logger.info("Downloading dataset from %s (14 MB)", ARCHIVE.url)
archive_path = _fetch_remote(ARCHIVE, dirname=target_dir)

在后面添加

archive_path = os.path.join(target_dir, r'20newsbydate.tar.gz')

注意要使用4个空格缩进。

4.导入数据集

程序中运行代码

from sklearn.datasets import fetch_20newsgroups
all_data = fetch_20newsgroups(subset='all')

观察到文件夹 ~/scikit_learn_data/ 生成缓存文件 20news-bydate_py3.pkz 即表示数据集导入成功

注:以上内容为mac版操作,windows版操作路径略有不同,具体参照楼下参考资料

参考资料:
scikit-learn - 20newsgroups
Sklearn导入数据集20newsgroups报错-no handlers could be fetch_20newsgroups
How to download datasets for sklearn? - python

← 20181223随笔——关于坚持、和解 【机器学习】KNN算法的使用与参数优化 →