sklearn数据集与估计器
1 sklearn数据集
(1)数据来源:大多数以文件的形式 (csv文件..), 因为mysql有性能瓶颈、读取速度遭到限制,数据大的时候很费时间
(2)读取数据的工具:Python中很强大的模块 pandas:读取工具、numpy(数据计算模块,计算速度非常快,因为释放了Python中的GIL)
(3)可用数据集:
①Kaggle网址:https://www.kaggle.com/datasets
Kaggle特点:大数据竞赛平台;80万科学家;真实数据;数据量巨大
②UCI数据集网址: http://archive.ics.uci.edu/ml/
UCI特点:收录了360个数据集;覆盖科学、生活、经济等领域 ;数据量几十万
③scikit-learn网址:http://scikit-learn.org/stable/datasets/index.html#datasets
scikit-learn特点:1数据量较小 ;方便学习
(4)数据集的结构
机器学习中数据集的结构:特征值+目标值
特征值:就是DataFrame(他的特点是有行索引和列索引)中的列索引
目标值:很据特征值得到的结果值,就为目标值,就是想要做的事情的目的的分类
样本:每一行数据可以作为一个样本
2 sklearn.datasets
机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
一般在进行模型的测试时,我们会将数据分为训练集和测试集。在给定的样本空间中,拿出大部分样本作为训练集来训练模型,剩余的小部分样本使用刚建立的模型进行预测。
sklearn数据集划分API:sklearn.model_selection.train_test_split
sklearn.datasets 加载获取流行数据集
datasets.load_*() 获取小规模数据集,数据包含在datasets里
datasets.fetch_*(data_home=None) 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集 下载的目录
datasets.make_*()本地生成数据集
datasets.get_data_home()获取数据集目录,这个文件夹被一些大的数据集装载器使用,以避免下载数据。默认情况下,数据目录设置为用户主文件夹中名为“scikit_learn_data”的文件夹。或者,可以通过“SCIKIT_LEARN_DATA”环境变量或通过给出显式的文件夹路径以编程方式设置它。
clear_data_home(data_home=None)删除所有下载数据
load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)如下:
data | 特征数据数组,是 [n_samples * n_features] 的二维numpy.ndarray 数组 |
target | 标签数组,是 n_samples 的一维 numpy.ndarray 数组 |
DESCR | 数据描述 |
feature_names | 特征名,新闻数据,手写数字、回归数据集没有 |
target_names | 标签名,回归数据集没有 |
2.1 获取小数据集
(1)分类数据集
①sklearn.datasets.load_iris():加载并返回鸢尾花数据集
名称 | 数量 |
类别 | 3 |
特征 | 4 |
样本数量 | 150 |
每个类别数量 | 50 |
参数:return_X_y: 如果为True,则返回而不是Bunch对象,默认为False
返回值Bunch对象,如果return_X_y为True,那么返回tuple,(data,target)
|
②sklearn.datasets.load_digits():加载并返回数字数据集
名称 | 数量 |
类别 | 10 |
特征 | 64 |
样本数量 | 1797 |
(2)回归数据集
①sklearn.datasets.load_boston():加载并返回波士顿房价数据集
名称 | 数量 |
目标类别 | 5-50 |
特征 | 13 |
样本数量 | 506 |
②sklearn.datasets.load_diabetes() : 加载和返回糖尿病数据集
名称 | 数量 |
目标范围 | 25-346 |
特征 | 10 |
样本数量 | 442 |
2.2 获取大数据集
sklearn.datasets.fetch_20newsgroups():加载20个新闻组数据集中的文件名和数据
data_home | 默认值:无,指定数据集的下载和缓存文件夹。如果没有,所有scikit学习数据都存储在'〜/ scikit_learn_data'子文件夹中 |
subset | 'train'或者'test','all',可选,选择要加载的数据集:训练集的“训练”,测试集的“测试”,两者的“全部”,具有洗牌顺序 |
categories | 无或字符串或Unicode的集合,如果没有(默认),加载所有类别。如果不是无,要加载的类别名称列表(忽略其他类别) |
shuffle | 是否对数据进行洗牌 |
random_state | numpy随机数生成器或种子整数 |
remove | 元组 |
download_if_missing | 默认为True,如果False,如果数据不在本地可用而不是尝试从源站点下载数据,则引发IOError |
sklearn.datasets.fetch_20newsgroups_vectorized():加载20个新闻组数据集并将其转换为tf-idf向量
2.3 生成本地数据
sklearn.datasets.make_classification():生成本地分类数据
n_samples:int | (default = 100),样本数量 |
n_features | (默认= 20),特征总数 |
n_classes | 类(或标签)的分类问题的数量 |
random_state | RandomState实例或无,可选(默认=无) |
sklearn.datasets.make_regression():生成本地回归数据
3 估计器
在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API,是sklearn机器学习算法的实现。
在估计器中有有两个重要的方法是fit和transform:①fit方法用于从训练集中学习模型参数,②transform用学习到的参数转换数据。
用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶
sklearn.linear_model.LogisticRegression 逻辑回归
用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归