scikit-learn 中 Boston Housing 数据集问题解决方案

这篇具有很好参考价值的文章主要介绍了scikit-learn 中 Boston Housing 数据集问题解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

scikit-learn 中 Boston Housing 数据集问题解决方案

在部分旧教程或教材中是 sklearn,现在【2023】已经变更为 scikit-learn

  • 作用:开源机器学习库,支持有监督和无监督学习。它还提供了用于模型拟合、数据预处理、模型选择、模型评估和许多其他实用程序的各种工具。
  • 安装 pip install scikit-learn

Boston Housing 数据集

此数据集原本应该在 sklearn 中是自带数据集之一,但在 scikit-learn 1.2 版本由于某些特殊原因被移除,所以无法使用 load_boston() 获取

解决办法:既然自带的数据集没有 Boston Housing,那就想办法在网上找到开放式公共数据集,下载后加载到程序中。这也是网上常见的解决方案,大多借助 pandas, scipy, numpy 等方法下载,然后标准化加载数据,供 scikit-learn 使用。

我将表述一下我所有使用的方法:通过从 openml.org 存储库下载数据集,我直接使用 fetch_openml()

from sklearn.datasets import fetch_openml

data_x, data_y = fetch_openml(name="boston", version=1, as_frame=True, return_X_y=True, parser="pandas")
  • 其中 name 是数据集在 openml.org 上的名称
  • version 是版本号,根据 openml.org 上的描述,使用 1 版本是原始数据集,所以我选择 1 版本,具体根据对应数据集的描述选择
  • as_frame=True 表示返回 pandas 的 DataFrame 格式,这样可以直接使用 pandas 的方法进行数据处理
  • return_X_y 表示分别返回特征和标签,如果为 False 则返回一个字典【包含特征和标签】,如果你想要的是字典格式,可以设置为 False,而且默认也是 False
  • parser 表示用于加载 ARFF 文件的解析器,默认的是 liac-arff
  • 更复杂的参考官方文档:https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_openml.html#sklearn.datasets.fetch_openml

对 as_frame 分不分,看下面的内容你应该会有熟悉感觉,一般在分配训练数据和测试数据时都是下面步骤,我实验需求决定,所以我直接使用 as_frame=True 获取我想要的数据,如果你需要完整的,可以不使用 as_frame=True

from sklearn.model_selection import train_test_split

train_x, test_x, train_y, test_y = train_test_split(data_x, data_y, test_size=0.3, random_state=1001)

其他问题

使用上面可能会遇见一些问题【TypeError: can't multiply sequence by non-int of type 'float'】,一般是数据集格式问题,我在使用中是使用 numpy 进行调整的

import numpy as np
from sklearn import linear_model

model = linear_model.LinearRegression()
model.fit(train_x, train_y)
pred_y = model.predict(test_x.astype(np.float64))
  • 像是 predict 运算时,需要将 test_x 转换为 np.float64 类型,反正报错时会提醒你使用什么格式的数据,根据情况进行转换就可以了

上面加载数据集时我使用 parser="pandas" 也是为了避免,sklearn 中有时对 pandas 数据格式的需求

总结

想办法获取远程或离线的数据集,通过 scikit-learn 自带工具或其他工具【pandas, scipy, numpy 等】加载即可使用,在使用时注意不同情况下使用的数据格式并做出对应调整。

scikit-learn 适用于存储为 numpy 数组或 scipy 稀疏矩阵的任何数字数据,因为 scikit-learn 开发中也使用这些工具。比如在上面的报错中有部分内部代码涉及 np,所以使用 numpy 转化格式就解决了报错问题。文章来源地址https://www.toymoban.com/news/detail-412354.html

File /opt/conda/envs/education/lib/python3.8/site-packages/sklearn/utils/extmath.py:189, in safe_sparse_dot(a, b, dense_output)
    187         ret = np.dot(a, b)
    188 else:
--> 189     ret = a @ b

到了这里,关于scikit-learn 中 Boston Housing 数据集问题解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【scikit-learn基础】--『数据加载』之玩具数据集

    机器学习的第一步是准备数据,好的数据能帮助我们加深对机器学习算法的理解。 不管是在学习还是实际工作中, 准备数据 永远是一个枯燥乏味的步骤。 scikit-learn 库显然看到了这个痛点,才在它的 数据加载 子模块中为我们准备了直接可用的数据集。 在它的 数据加载 子模

    2024年02月05日
    浏览(60)
  • Python数据科学:Scikit-Learn机器学习

    Scikit-Learn使用的数据表示:二维网格数据表 鸢尾花数据集说明: sepal_length:萼片长度 sepal_width:萼片宽度 petal_length:花瓣长度 petal_width:花瓣宽度 species:鸢尾花类型,Iris-setosa(山鸢尾),Iris-versicolor(变色鸢尾),Iris-virginica(维吉尼亚鸢尾) df_iris.head() 样本:鸢尾花数据集矩阵,矩阵

    2024年02月21日
    浏览(50)
  • 【scikit-learn基础】--『预处理』之 数据缩放

    数据的 预处理 是数据分析,或者机器学习训练前的重要步骤。 通过数据预处理,可以 提高数据质量 ,处理数据的缺失值、异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据 ,数据的来源和结构可能多种多样,分析和训练前要整合成一个数据集 提高数据性

    2024年02月04日
    浏览(43)
  • 【scikit-learn基础】--『数据加载』之样本生成器

    除了内置的数据集, scikit-learn 还提供了随机样本的生成器。 通过这些生成器函数,可以生成具有特定特性和分布的随机数据集,以帮助进行机器学习算法的研究、测试和比较。 目前, scikit-learn 库( v1.3.0 版)中有 20个 不同的生成样本的函数。 本篇重点介绍其中几个具有代

    2024年02月05日
    浏览(43)
  • 机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn

    决策树是一种监督机器学习算法,用于回归和分类任务。树是可以处理复杂数据集的强大算法。 决策树特性: 不需要数值输入数据进行缩放。无论数值是多少,决策树都不在乎。 不同于其他复杂的学习算法,决策树的结果是可以解释的,决策树不是黑盒类型的模型。 虽然大

    2024年02月20日
    浏览(35)
  • 机器学习06 数据准备-(利用 scikit-learn基于Pima Indian数据集作 数据特征选定)

    数据特征选定(Feature Selection)是指从原始数据中选择最相关、最有用的特征,用于构建机器学习模型。特征选定是机器学习流程中非常重要的一步,它直接影响模型的性能和泛化能力。通过选择最重要的特征,可以减少模型的复杂性,降低过拟合的风险,并提高模型的训练

    2024年02月14日
    浏览(72)
  • 机器学习-决策树-分类-汽车数据集-fetch_openml python scikit-learn

    在这个使用决策树的分类任务中,将使用OpenML提供的汽车数据集来预测给定汽车信息的汽车可接受性。将使用Sklearn ’ fetch_openml \\\'函数加载它。 此次获取的数据的版本是2。在数据集的版本1中,目标类有4个类(unacc, acc, good, vgood),但在第二个版本中,大多数类是Positive§,而其

    2024年02月22日
    浏览(48)
  • Python 数据分析入门教程:Numpy、Pandas、Matplotlib和Scikit-Learn详解

    NumPy是一个Python的科学计算基础模块,提供了多维数组和矩阵操作功能。 NumPy中的数组比Python自带的列表更适合进行数值计算和数据分析。 Pandas建立在NumPy之上,提供了更高级的数据分析功能。 Pandas中的DataFrame可以看成是一个二维表格,便于加载和分析数据。 Matplotlib可以用来绘

    2024年02月07日
    浏览(50)
  • 机器学习05-数据准备(利用 scikit-learn基于Pima Indian数据集作数据预处理)

    机器学习的数据准备是指在将数据用于机器学习算法之前,对原始数据进行预处理、清洗和转换的过程。数据准备是机器学习中非常重要的一步,它直接影响了模型的性能和预测结果的准确性 以下是机器学习数据准备的一些常见步骤: 数据收集:首先需要收集原始数据,可

    2024年02月14日
    浏览(36)
  • python数据分析与应用:使用scikit-learn构建模型分析 第六章实训(1,2)

    有问题可以加我微信交流学习,bmt1014 (gcc的同学不要抄袭呀!) 一、实验目的 1、掌握skleam转换器的用法。 2、掌握训练集、测试集划分的方法。 3、掌握使用sklearm进行PCA降维的方法。 4、掌握 sklearn 估计器的用法。 5、掌握聚类模型的构建与评价方法。 6、掌握分类模型的构

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包