sklearn是基于python语言的机器学习工具包,是目前做机器学习项目当之无愧的第一工具。 sklearn自带了大量的数据集,可供我们练习各种机器学习算法。
- sklearn.datasets
- 获取小数据集(本地加载):datasets.load_xxx( )
- 获取大数据集(在线下载):datasets.fetch_xxx( )
- 本地生成数据集(本地构造):datasets.make_xxx( )
数据集 | 介绍 |
---|---|
load_iris( ) | 鸢尾花数据集:3类、4个特征、150个样本 |
load_boston( ) | 波斯顿房价数据集:13个特征、506个样本 |
load_digits( ) | 手写数字集:10类、64个特征、1797个样本 |
load_breast_cancer( ) | 乳腺癌数据集:2类、30个特征、569个样本 |
load_diabets( ) | 糖尿病数据集:10个特征、442个样本 |
load_wine( ) | 红酒数据集:3类、13个特征、178个样本 |
load_files( ) | 加载自定义的文本分类数据集 |
load_linnerud( ) | 体能训练数据集:3个特征、20个样本 |
load_sample_image( ) | 加载单个图像样本 |
load_svmlight_file( ) | 加载svmlight格式的数据 |
make_blobs( ) | 生成多类单标签数据集 |
make_biclusters( ) | 生成双聚类数据集 |
make_checkerboard( ) | 生成棋盘结构数组,进行双聚类 |
make_circles( ) | 生成二维二元分类数据集 |
make_classification( ) | 生成多类单标签数据集 |
make_friedman1( ) | 生成采用了多项式和正弦变换的数据集 |
make_gaussian_quantiles( ) | 生成高斯分布数据集 |
make_hastie_10_2( ) | 生成10维度的二元分类数据集 |
make_low_rank_matrix( ) | 生成具有钟形奇异值的低阶矩阵 |
make_moons( ) | 生成二维二元分类数据集 |
make_multilabel_classification( ) | 生成多类多标签数据集 |
make_regression( ) | 生成回归任务的数据集 |
make_s_curve( ) | 生成S型曲线数据集 |
make_sparse_coded_signal( ) | 生成信号作为字典元素的稀疏组合 |
make_sparse_spd_matrix( ) | 生成稀疏堆成的正定矩阵 |
make_sparse_uncorrelated( ) | 使用稀疏的不相关设计生成随机回归问题 |
make_spd_matrix( ) | 生成随机堆成的正定矩阵 |
make_swiss_roll( ) | 生成瑞士卷曲线数据集 |
from sklearn import datasets
import matplotlib.pyplot as plt
# 查询模块
dir(datasets)
help(datasets)
# 1.载入内置数据集
test_data = datasets.load_iris() # 载入数据
# test_data = datasets.load_boston()
# test_data = datasets.load_digits()
print(type(test_data)) # 查看数据类型 <class 'sklearn.utils.Bunch'>
features = test_data.data # <class 'numpy.ndarray'>
target = test_data.target # <class 'numpy.ndarray'>
print(features.shape, target.shape)
print(test_data.feature_names) # 特征名称
print(test_data.target_names) # 预测结果名
# 2.载入单一图像数据,只有这两个示例图片
img = datasets.load_sample_image('flower.jpg')
img = datasets.load_sample_image('china.jpg')
print(img.shape)
plt.imshow(img)
plt.show()
# 3. 生成数据集
data, target = datasets.make_blobs(n_samples=1000, n_features=2,
centers=4, cluster_std=1)
data, target = datasets.make_classification(n_classes=4, n_samples=1000,
n_features=2, n_informative=2,
n_redundant=0, n_clusters_per_class=1)
print(data)
print(data.shape)
print(target)
plt.scatter(data[:, 0], data[:, 1], c=target)
plt.show()
x, y = datasets.make_regression(n_samples=100, n_features=10, n_targets=1,
noise=1.5, random_state=1)
print(x.shape, y.shape)
print(x)
print(y)
plt.scatter(x[:, 1], y)
plt.show()