python - 如何从 scikit-learn 玩具数据集中预测数据
问题描述
我正在研究机器学习,我正在尝试分析 scikit 糖尿病玩具数据库。在这种情况下,我想将默认的 Bunch 对象更改为 pandas DataFrame 对象。我尝试使用参数as_frame=True并且它确实将对象类型更改为 DataFrame。
所以在那之后,我训练了数据,当我试图绘制它时问题就来了:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn import datasets, linear_model
from sklearn.model_selection import train_test_split
dataset = datasets.load_diabetes(as_frame=True)
X = dataset.data
y = dataset.target
y = y.to_frame()
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, random_state=42)
regressor = linear_model.LinearRegression()
regressor.fit(X_train, y_train)
plt.scatter(X_train, y_train, color='blue')
plt.plot(X_train, regressor.predict(X_test), color='red')
问题是当我尝试使用 matplotlib 绘制它时,因为as_frame=True返回 (data, target) ,其中数据是 DataFrame 对象,目标是 Series。
Traceback (most recent call last):
File "C:/Users/Kelvin/OneDrive/Documents/analytics/diabetes-sklearn/test.py", line 19, in <module>
plt.scatter(X_train, y_train, color='blue')
File "C:\Users\Kelvin\OneDrive\Desktop\analytics\lib\site-packages\matplotlib\pyplot.py", line 3037, in scatter
__ret = gca().scatter(
File "C:\Users\Kelvin\OneDrive\Desktop\analytics\lib\site-packages\matplotlib\__init__.py", line 1352, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "C:\Users\Kelvin\OneDrive\Desktop\analytics\lib\site-packages\matplotlib\axes\_axes.py", line 4478, in scatter
raise ValueError("x and y must be the same size")
ValueError: x and y must be the same size
所以,我的问题是,是否有办法可以将整个数据更改为 DataFrame,就像我们使用pd.read_csv()获取数据一样?
解决方案
那已经是一个数据框,您会收到错误,因为您正在用 y_train 绘制 X_train 并且 X_train 有多个列。
但是如果你想你的数据集在 csv 文件中,你可以使用这个代码。
X.to_csv('train_data.csv')
这会将数据集保存到工作目录中的 csv 文件中。现在您可以pd.read_csv
使用train_data.csv
.
推荐阅读
- reactjs - 如何从 React useEffect 中的另一个函数访问状态
- apache-spark - 在 spark kubernetes 3.0.1 中创建的 Spark 执行程序没有 root 权限
- c++ - C ++在函数中分配动态二维数组
- python - python中具有特定值操作的第一行
- python - 使用两个属性值抓取动态网页
- java - Java 检查:“for”循环可替换为增强的“for”
- docker - Docker 卷不会在本地系统中生成文件
- python - 在分布式计算上执行 ray
- c# - 如何将 STRAIGHT_JOIN 与 LINQ 和实体框架 - MySQL 一起使用?
- visual-studio - 如何在 Microsoft Visual Studio 2019 中为“Ninja Multi-Config”生成器使用现有的 CMakeCache.txt?