sklearn 的数据集有好多个种

  • 自带的小数据集(packaged dataset):sklearn.datasets.load_<name>
  • 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_<name>
  • 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_<name>
  • svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(...)
  • 从买了data.org在线下载获取的数据集:sklearn.datasets.fetch_mldata(...)

①自带的数据集

其中的自带的小的数据集为:sklearn.datasets.load_<name>

这些数据集都可以在官网上查到,以鸢尾花为例,可以在官网上找到demo,http://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html

  1. from sklearn.datasets import load_iris
    #加载数据集
  2. iris=load_iris()
  3. iris.keys()  #dict_keys(['target', 'DESCR', 'data', 'target_names', 'feature_names'])
    #数据的条数和维数
  4. n_samples,n_features=iris.data.shape
  5. print("Number of sample:",n_samples) #Number of sample: 150
  6. print("Number of feature",n_features)  #Number of feature 4
    #第一个样例
  7. print(iris.data[0])      #[ 5.1  3.5  1.4  0.2]
  8. print(iris.data.shape)    #(150, 4)
  9. print(iris.target.shape)  #(150,)
  10. print(iris.target)
    """

  [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
  2 2]

  1. """
  2. import numpy as np
  3. print(iris.target_names)  #['setosa' 'versicolor' 'virginica']
  4. np.bincount(iris.target)  #[50 50 50]
  5.  
  6. import matplotlib.pyplot as plt
    #以第3个索引为划分依据,x_index的值可以为0,1,2,3
  7. x_index=3
  8. color=['blue','red','green']
  9. for label,color in zip(range(len(iris.target_names)),color):
  10. plt.hist(iris.data[iris.target==label,x_index],label=iris.target_names[label],color=color)
  11.  
  12. plt.xlabel(iris.feature_names[x_index])
  13. plt.legend(loc="Upper right")
  14. plt.show()

  15. #画散点图,第一维的数据作为x轴和第二维的数据作为y轴
  16. x_index=0
  17. y_index=1
  18. colors=['blue','red','green']
  19. for label,color in zip(range(len(iris.target_names)),colors):
  20. plt.scatter(iris.data[iris.target==label,x_index],
  21. iris.data[iris.target==label,y_index],
  22. label=iris.target_names[label],
  23. c=color)
  24. plt.xlabel(iris.feature_names[x_index])
  25. plt.ylabel(iris.feature_names[y_index])
  26. plt.legend(loc='upper left')
  27. plt.show()

手写数字数据集load_digits():用于多分类任务的数据集

  1. from sklearn.datasets import load_digits
  2. digits=load_digits()
  3. print(digits.data.shape)
  4. import matplotlib.pyplot as plt
  5. plt.gray()
  6. plt.matshow(digits.images[0])
  7. plt.show()
  8.  
  9. from sklearn.datasets import load_digits
  10. digits=load_digits()
  11. digits.keys()
  12. n_samples,n_features=digits.data.shape
  13. print((n_samples,n_features))
  14.  
  15. print(digits.data.shape)
  16. print(digits.images.shape)
  17.  
  18. import numpy as np
  19. print(np.all(digits.images.reshape((1797,64))==digits.data))
  20.  
  21. fig=plt.figure(figsize=(6,6))
  22. fig.subplots_adjust(left=0,right=1,bottom=0,top=1,hspace=0.05,wspace=0.05)
  23. #绘制数字:每张图像8*8像素点
  24. for i in range(64):
  25. ax=fig.add_subplot(8,8,i+1,xticks=[],yticks=[])
  26. ax.imshow(digits.images[i],cmap=plt.cm.binary,interpolation='nearest')
  27. #用目标值标记图像
  28. ax.text(0,7,str(digits.target[i]))
  29. plt.show()

乳腺癌数据集load-barest-cancer():简单经典的用于二分类任务的数据集

糖尿病数据集:load-diabetes():经典的用于回归认为的数据集,值得注意的是,这10个特征中的每个特征都已经被处理成0均值,方差归一化的特征值,

波士顿房价数据集:load-boston():经典的用于回归任务的数据集

体能训练数据集:load-linnerud():经典的用于多变量回归任务的数据集,其内部包含两个小数据集:Excise是对3个训练变量的20次观测(体重,腰围,脉搏),physiological是对3个生理学变量的20次观测(引体向上,仰卧起坐,立定跳远)

svmlight/libsvm的每一行样本的存放格式:

<label><feature-id>:<feature-value> <feature-id>:<feature-value> ....

这种格式比较适合用来存放稀疏数据,在sklearn中,用scipy sparse CSR矩阵来存放X,用numpy数组来存放Y

  1. from sklearn.datasets import load_svmlight_file
  2. x_train,y_train=load_svmlight_file("/path/to/train_dataset.txt","")#如果要加在多个数据的时候,可以用逗号隔开

②生成数据集

生成数据集:可以用来分类任务,可以用来回归任务,可以用来聚类任务,用于流形学习的,用于因子分解任务的

用于分类任务和聚类任务的:这些函数产生样本特征向量矩阵以及对应的类别标签集合

make_blobs:多类单标签数据集,为每个类分配一个或多个正太分布的点集

make_classification:多类单标签数据集,为每个类分配一个或多个正太分布的点集,提供了为数据添加噪声的方式,包括维度相关性,无效特征以及冗余特征等

make_gaussian-quantiles:将一个单高斯分布的点集划分为两个数量均等的点集,作为两类

make_hastie-10-2:产生一个相似的二元分类数据集,有10个维度

make_circle和make_moom产生二维二元分类数据集来测试某些算法的性能,可以为数据集添加噪声,可以为二元分类器产生一些球形判决界面的数据

  1. #生成多类单标签数据集
    import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn.datasets.samples_generator import make_blobs
  4. center=[[1,1],[-1,-1],[1,-1]]
  5. cluster_std=0.3
  6. X,labels=make_blobs(n_samples=200,centers=center,n_features=2,
  7. cluster_std=cluster_std,random_state=0)
  8. print('X.shape',X.shape)
  9. print("labels",set(labels))
  10.  
  11. unique_lables=set(labels)
  12. colors=plt.cm.Spectral(np.linspace(0,1,len(unique_lables)))
  13. for k,col in zip(unique_lables,colors):
  14. x_k=X[labels==k]
  15. plt.plot(x_k[:,0],x_k[:,1],'o',markerfacecolor=col,markeredgecolor="k",
  16. markersize=14)
  17. plt.title('data by make_blob()')
  18. plt.show()
  19. #生成用于分类的数据集
    from sklearn.datasets.samples_generator import make_classification
  20. X,labels=make_classification(n_samples=200,n_features=2,n_redundant=0,n_informative=2,
  21. random_state=1,n_clusters_per_class=2)
  22. rng=np.random.RandomState(2)
  23. X+=2*rng.uniform(size=X.shape)
  24.  
  25. unique_lables=set(labels)
  26. colors=plt.cm.Spectral(np.linspace(0,1,len(unique_lables)))
  27. for k,col in zip(unique_lables,colors):
  28. x_k=X[labels==k]
  29. plt.plot(x_k[:,0],x_k[:,1],'o',markerfacecolor=col,markeredgecolor="k",
  30. markersize=14)
  31. plt.title('data by make_classification()')
  32. plt.show()
  33.  
  34. #生成球形判决界面的数据
  35. from sklearn.datasets.samples_generator import make_circles
  36. X,labels=make_circles(n_samples=200,noise=0.2,factor=0.2,random_state=1)
  37. print("X.shape:",X.shape)
  38. print("labels:",set(labels))
  39.  
  40. unique_lables=set(labels)
  41. colors=plt.cm.Spectral(np.linspace(0,1,len(unique_lables)))
  42. for k,col in zip(unique_lables,colors):
  43. x_k=X[labels==k]
  44. plt.plot(x_k[:,0],x_k[:,1],'o',markerfacecolor=col,markeredgecolor="k",
  45. markersize=14)
  46. plt.title('data by make_moons()')
  47. plt.show()

sklearn提供的自带数据集的更多相关文章

  1. Python——sklearn提供的自带的数据集

    sklearn提供的自带的数据集 sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在线下 ...

  2. sklearn提供的自带的数据集

    sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在线下载的数据集(Downloaded ...

  3. 『Sklearn』框架自带数据集接口

    自带数据集类型如下: # 自带小型数据集# sklearn.datasets.load_<name># 在线下载数据集# sklearn.datasets.fetch_<name&g ...

  4. 2.sklearn库中的标准数据集与基本功能

    sklearn库中的标准数据集与基本功能 下面我们详细介绍几个有代表性的数据集: 当然同学们也可以用sklearn机器学习函数来挖掘这些数据,看看可不可以捕捉到一些有趣的想象或者是发现: 波士顿房价数 ...

  5. TF:利用sklearn自带数据集使用dropout解决学习中overfitting的问题+Tensorboard显示变化曲线—Jason niu

    import tensorflow as tf from sklearn.datasets import load_digits #from sklearn.cross_validation impo ...

  6. 关于无法下载sklearn中的MNIST original数据集的问题

    在使用Sklearn进行加载自带的数据集MNIST时,总是报错,代码及相应的错误显示如下: from sklearn.datasets import fetch_mldata mnist = fetc ...

  7. 利用sklearn对MNIST手写数据集开始一个简单的二分类判别器项目(在这个过程中学习关于模型性能的评价指标,如accuracy,precision,recall,混淆矩阵)

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  8. fmri的图像数据在matlab中显示,利用imagesc工具进行显示,自带数据集-by 西南大学xulei教授

    这里包含了这样一个数据集:slice_data.mat. 这个数据集中包含的mri数据是:64*64*25.共有25个slice.每个slice的分辨率是64*64. 程序非常简短: load sli ...

  9. hibernate 为什么持久化类时必须提供一个不带参数的默认构造函数

    因为hibernate框架会调用这个默认构造方法来构造实例对象..即Class类的newInstance方法 这个方法就是通过调用默认构造方法来创建实例对象的 ,另外再提醒一点,如果你没有提供任何构造 ...

随机推荐

  1. (转)OpenFire源码学习之十五:插件开发

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43418493 Plugin接口规范 插件是openfire功能的增强表现,它的主要任务: ...

  2. Java-Class-@I:io.swagger.annotation.ApiOperation

    ylbtech-Java-Class-@I:io.swagger.annotation.ApiOperation 1.返回顶部   2.返回顶部 1. package com.ylbtech.api. ...

  3. Installing GCC 简单方法

    Installing GCC This page is intended to offer guidance to avoid some common problems when installing ...

  4. jdk8处理时间

    对当前时间格式化: public static long getCurrentTimeMillis(String pattern) { return Long.valueOf(toString(Loc ...

  5. 【转】Linux系统抓包命令tcpdump使用实例

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式tcpdump的参数众多,通过man tcpdump可 ...

  6. Java 中 Properties 类的操作

    一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...

  7. C#WinForm 窗体单例模式 反射单例

    做了个mdi窗体 原以为指定一下MDIParent就可以了 没想到多次点击会出现多个窗体的现像 所以用到了单例模式 做法是这样的(学习出处:连接) 1.在子窗体声明一个子窗体类型的私有静态变量 并把子 ...

  8. react-swiper 如何实现滑动小卡片的移动?

    1.引入插件 import ReactSwipes from 'react-swipes'; import './swiperCard.css'; 2.代码构成 export default clas ...

  9. idea一直在copying resources或者一直在build,卡住不动,问题已解决

    IDE在启动项目的过程中,一直copying,或者是build一直卡住,需要在modules中配置下,把target文件夹移出resource folder 同时,在此之前,我还屏蔽了项目中pom.x ...

  10. CentOS7.6下安装MySQL

    注:本教程使用XShell ssh到CentOS服务器,并使用root用户登录,如使用其他普通用户登录,请在命令前加sudo 1).在/usr/local/目录下(看个人情况)新建文件夹mysql用来 ...