一、学习阶段可用的数据集:
1、Kaggle网址:https://www.kaggle.com/datasets
特点:大数据竞赛平台/真实数据/数据量巨大
2、UCI数据集网址:http://archive.ics.uci.edu/ml/index.php
特点:收录了500余个数据集/覆盖科学、生活、竞技领域/数据量几十万
3、scikit-learn网址:https://scikit-learn.org/stable/datasets/index.html#datasets
特点:数据量较小/方便学习
二、Scikit-learn工具介绍
- Python语言的机器学习工具
- Scikit-learn包括许多知名的机器学习算法的实现
- Scikit-learn文档挖秦山,容易上手,丰富的API
安装:pip install sklearn
三、Scikit-learn包含的内容
- 分类 Classifcation
- 回归 Regression
- 聚类 Clustering
- 降维 Dimensionality reduction
- 模型选择 Model selection
- 特征工程 Preprocessing
四、 sklearn数据集
1、scikit-learn数据集API介绍
- sklearn.datasets
加载获取流行数据集
代码 | |
---|---|
datasets.load_*() | 获取小规模数据集,数据包含在datasets里 |
datasets.fetch_*(data_home=None) | 获取大规模数据集,需要从网络上下载 |
data_home表示数据集下载目录,默认是~/scikit_learn_data/ |
2、sklearn小数据集
- sklearn.datasets.load_iris()
加载并返回鸢尾花数据集
名称 | 数量 |
---|---|
类别 | 3 |
特征 | 4 |
样本数量 | 150 |
每个类别数量 | 50 |
- sklearn.datasets.load_boston()
加载并返回波士顿房价数据集
名称 | 数量 |
---|---|
目标类别 | 5-50 |
特征 | 13 |
样本数量 | 506 |
3、sklearn大数据集
- sklearn.datasets.fetch_20newsgroups(data_home = None,subset=‘train’)
subset:‘train’或者’test’,‘all’,可选。选择要加载的数据集
训练集的‘’训练‘’,测试集的‘’测试‘’,两者的“全部”。
4、sklearn数据集的使用
sklearn数据集返回值介绍
- load和fetch放回的数据类型datasets.base.Bunch (继承自字典)
(dict[‘key’] = values 或者 bunch.key = values)
data:特征数据组数,是[n_samples*n_features]的二维numpy.ndarray数组
target:标签数组,是n_samples的一维numpy.ndarray数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名
from sklearn.datasets import load_iris
# 获取鸢尾花数据集
iris = load_iris()
print('鸢尾花数据集的返回值:\n',iris)
# 返回值是一个继承自字典的Bunch
print('鸢尾花的特征值:\n',iris['data'])
print('鸢尾花的目标值:\n',iris.target)
print('鸢尾花特征的名字:\n',iris.feature_names)
print('鸢尾花目标值的名字:\n',iris.target_names)
print('鸢尾花的描述:\n',iris.DESCR)
五、数据集的划分
机器学习一般的数据集会划分为两个部分
- 训练数据:用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
- 训练集:70%,80%,75%
- 测试集:30%,20%,25%
数据集划分api:
- sklearn.model_selection.train_test_split(arrays,‘options’)
x数据集的特征值
y数据集的标签值
test_size测试集的大小,一般为float
random_state随机数种子,不同的种子会造成不同的随机采样结果,相同的种子采样结果相同
return训练集特征值,测试集特征值,训练集目标值,测试机目标值
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
"""
对鸢尾花数据集的展示
:return: None
"""
# 1.获取鸢尾花数据集
iris = load_iris()
print('鸢尾花数据集的返回值:\n',iris)
# 返回值是一个继承自字典的Bunch
print('鸢尾花的特征值:\n',iris['data'])
print('鸢尾花的目标值:\n',iris.target)
print('鸢尾花特征的名字:\n',iris.feature_names)
print('鸢尾花目标值的名字:\n',iris.target_names)
print('鸢尾花的描述:\n',iris.DESCR)
# 2.对鸢尾花数据集进行分割
# 训练集的特征值x_train 测试集的特征值 x_test 训练集的目标值y_train 测试集的目标值y_test
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
# test_size:测试集范围
# 这里的random_state就是为了保证程序每次运行都分割一样的训练集和测试集。否则,同样的算法模型在不同的训练集和测试集上的效果不一样。
print('训练集的特征值:\n',x_train,x_train.shape)
return None
if __name__ = '__main__':
datasets_demo()