【ML】机器学习数据集:sklearn中分类数据集介绍


在机器学习的教程中,我们会看到很多的demo,这些demo都是基于python中自带的数据集。今天我们将介绍sklearn中几个常用的分类预测数据集。本教程使用的sklearn版本是1.0.2。

1.乳腺癌分类数据集(二分类)

数据集加载代码:

from sklearn.datasets import load_breast_cancer

data = load_breast_cancer()
X = data.data
y = data.target

为了便于方便查看加载的数据集,我们可以使用jupyter notebook或者spyder编辑器。我们以spyder编辑器为例:

运行加载数据集的代码,右侧会出现变量;

在这里插入图片描述

X是输入模型的数据:

在这里插入图片描述

y是数据对应的标签:

在这里插入图片描述

双击点开变量“data”:

在这里插入图片描述

data: 569条数据,每条数据30维,即每条数据30个特征,这30个特征的名称存储在feature_names变量中,分别为[‘mean radius’, ‘mean texture’, ‘mean perimeter’, ‘mean area’, ‘mean smoothness’, ‘mean compactness’, ‘mean concavity’, ‘mean concave points’, ‘mean symmetry’, ‘mean fractal dimension’, ‘radius error’, ‘texture error’, ‘perimeter error’, ‘area error’, ‘smoothness error’, ‘compactness error’, ‘concavity error’, ‘concave points error’, ‘symmetry error’, ‘fractal dimension error’, ‘worst radius’, ‘worst texture’, ‘worst perimeter’, ‘worst area’, ‘worst smoothness’, ‘worst compactness’, ‘worst concavity’, ‘worst concave points’, ‘worst symmetry’, ‘worst fractal dimension’]

2.鸢尾花分类数据集(三分类)

数据集加载代码:

from sklearn.datasets import load_iris

data = load_iris()
X = data.data
y = data.target

为了便于方便查看加载的数据集,我们可以使用jupyter notebook或者spyder编辑器。我们以spyder编辑器为例:

在这里插入图片描述

X是输入模型的数据:

在这里插入图片描述

y是数据对应的标签:

在这里插入图片描述

双击点开变量“data”:

在这里插入图片描述
data: 150条数据,每条数据4维,即每条数据4个特征,这4个特征的名称存储在feature_names变量中,分别为[‘sepal length (cm)’, ‘sepal width (cm)’, ‘petal length (cm)’, ‘petal width (cm)’]

3.葡萄酒分类数据集(三分类)

数据集加载代码:

from sklearn.datasets import load_wine

data = load_wine()
X = data.data
y = data.target

为了方便查看加载的数据集,我们可以使用jupyter notebook或者spyder编辑器。我们以spyder编辑器为例:

运行加载数据集的代码,右侧会出现变量;

在这里插入图片描述

X是输入模型的数据:

在这里插入图片描述

y是数据对应的标签:

在这里插入图片描述

双击点开变量“data”:

在这里插入图片描述

data: 178条数据,每条数据13维,即每条数据13个特征,这13个特征的名称存储在feature_names变量中,分别为[‘alcohol’, ‘malic_acid’, ‘ash’, ‘alcalinity_of_ash’, ‘magnesium’, ‘total_phenols’, ‘flavanoids’, ‘nonflavanoid_phenols’, ‘proanthocyanins’, ‘color_intensity’, ‘hue’, ‘od280/od315_of_diluted_wines’, ‘proline’]

4.手写数字分类数据集(十分类)

数据集加载代码:

from sklearn.datasets import load_digits

data = load_digits()
X = data.data
y = data.target

为了方便查看加载的数据集,我们可以使用jupyter notebook或者spyder编辑器。我们以spyder编辑器为例:

运行加载数据集的代码,右侧会出现变量;

在这里插入图片描述

X是输入模型的数据:

在这里插入图片描述
y是数据对应的标签:

在这里插入图片描述

双击点开变量“data”:

在这里插入图片描述

data: 1797条数据,每条数据64维,即每条数据64个特征,这64个特征的名称存储在feature_names变量中,分别为[‘pixel_0_0’, ‘pixel_0_1’, ‘pixel_0_2’, ‘pixel_0_3’, ‘pixel_0_4’, ‘pixel_0_5’, ‘pixel_0_6’, ‘pixel_0_7’, ‘pixel_1_0’, ‘pixel_1_1’, ‘pixel_1_2’, ‘pixel_1_3’, ‘pixel_1_4’, ‘pixel_1_5’, ‘pixel_1_6’, ‘pixel_1_7’, ‘pixel_2_0’, ‘pixel_2_1’, ‘pixel_2_2’, ‘pixel_2_3’, ‘pixel_2_4’, ‘pixel_2_5’, ‘pixel_2_6’, ‘pixel_2_7’, ‘pixel_3_0’, ‘pixel_3_1’, ‘pixel_3_2’, ‘pixel_3_3’, ‘pixel_3_4’, ‘pixel_3_5’, ‘pixel_3_6’, ‘pixel_3_7’, ‘pixel_4_0’, ‘pixel_4_1’, ‘pixel_4_2’, ‘pixel_4_3’, ‘pixel_4_4’, ‘pixel_4_5’, ‘pixel_4_6’, ‘pixel_4_7’, ‘pixel_5_0’, ‘pixel_5_1’, ‘pixel_5_2’, ‘pixel_5_3’, ‘pixel_5_4’, ‘pixel_5_5’, ‘pixel_5_6’, ‘pixel_5_7’, ‘pixel_6_0’, ‘pixel_6_1’, ‘pixel_6_2’, ‘pixel_6_3’, ‘pixel_6_4’, ‘pixel_6_5’, ‘pixel_6_6’, ‘pixel_6_7’, ‘pixel_7_0’, ‘pixel_7_1’, ‘pixel_7_2’, ‘pixel_7_3’, ‘pixel_7_4’, ‘pixel_7_5’, ‘pixel_7_6’, ‘pixel_7_7’]

5.其他数据集

当然,除了上述介绍的分类数据集,sklearn.datasets还有其他的分类数据集,例如,新闻文本分类数据集(datasets.fetch_20newsgroups、datasets.fetch_20newsgroups_vectorized,二十分类),森林植被类型数据集(datasets.fetch_covtype,七分类),入侵检测数据集(datasets.fetch_kddcup99,二十三分类),人脸数据集分类(datasets.fetch_lfw_pair、datasets.fetch_lfw_people、datasets.fetch_lfw_people)等等。

参考资料

https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets
https://blog.csdn.net/weixin_39652646/article/details/109939004

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,那我们来实现一个朴素贝叶斯分类器吧。 首先,我们需要导入需要的库,包括numpy、pandas、sklearn的train_test_split和MultinomialNB。代码如下: ```python import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import MultinomialNB ``` 接下来,我们要读取数据集。这里我们使用UCI机器学习的Spambase数据集,该数据集包含了4601封电子邮件,其1813封是垃圾邮件,2788封是正常邮件。数据集有57个特征,包括每封邮件出现的单词的频率、字符的频率等。我们可以使用pandas库读取该数据集,代码如下: ```python data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data', header=None) ``` 然后,我们将数据集分成训练集和测试集。训练集用来训练模型,测试集用来评估模型的性能。我们可以使用sklearn的train_test_split函数来实现数据集的分割,代码如下: ```python X_train, X_test, y_train, y_test = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.3, random_state=42) ``` 这里我们将数据集按照7:3的比例分成训练集和测试集。 接下来,我们可以使用MultinomialNB来实现朴素贝叶斯分类器。MultinomialNB适用于多项式分布的数据,这里我们将每个特征的频率作为输入。代码如下: ```python clf = MultinomialNB() clf.fit(X_train, y_train) ``` 在这里,我们使用fit函数对训练集进行拟合,从而得到一个朴素贝叶斯分类器。 最后,我们可以使用测试集来评估模型的性能。代码如下: ```python y_pred = clf.predict(X_test) accuracy = np.mean(y_pred == y_test) print('Accuracy:', accuracy) ``` 这里我们使用predict函数对测试集进行预测,然后计算模型的准确率。 完整代码如下: ```python import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import MultinomialNB # 读取数据集 data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data', header=None) # 分割数据集为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.3, random_state=42) # 训练朴素贝叶斯分类器 clf = MultinomialNB() clf.fit(X_train, y_train) # 评估模型性能 y_pred = clf.predict(X_test) accuracy = np.mean(y_pred == y_test) print('Accuracy:', accuracy) ``` 运行该代码,可以得到以下输出: ``` Accuracy: 0.8205099279858907 ``` 这意味着我们的朴素贝叶斯分类器在该测试集上的准确率约为82%。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器不学习我学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值