【问题标题】:how to plot a scatter plot for the following data in python?如何在python中为以下数据绘制散点图?
【发布时间】:2019-12-21 15:22:49
【问题描述】:

我使用函数 train_test_split() 对训练数据和测试数据进行了拆分,得到以下结果。

print(X_train) +--------------------+ | fre loc | +--------------------+ | 1.208531 0.010000 | | 0.169742 0.010000 | | 0.119691 0.010000 | | 0.151515 0.010000 | | 0.632653 0.010000 | | 0.104000 1.125000 | | 3.313433 1.076923 | | 0.323899 0.010000 | | 3.513011 1.100000 | | 0.184971 0.010000 | | 0.158470 0.010000 | | 0.175258 0.010000 | | 0.149038 0.010000 | | 0.158879 0.010000 | +--------------------+

print(X_test) +--------------------+ | fre loc | +--------------------+ | 1.208531 0.010000 | | 0.169742 0.010000 | | 0.119691 0.010000 | | 0.151515 0.010000 | | 0.632653 0.010000 | | 0.104000 1.125000 | | 3.313433 1.076923 | +--------------------+

print(y_train) +----------------+ | Critical Value | +----------------+ | 1.208531 | | 0.000000 | | 0.000000 | | 0.000000 | | 0.632653 | | 1.125000 | | 4.390356 | | 0.000000 | | 4.613011 | | 0.000000 | | 0.000000 | | 0.000000 | | 0.000000 | | 0.000000 | +----------------+

print(y_test) +----------------+ | Critical Value | +----------------+ | 1.208531 | | 0.000000 | | 0.000000 | | 0.000000 | | 0.632653 | | 1.125000 | | 4.390356 | +----------------+

然后我按以下方式执行 Gradient Boosting Regressor,

est_knc= GradientBoostingRegressor() est_knc.fit(X_train, y_train) pred = est_knc.score(X_test, y_test) print(pred)

并得到输出, 0.8879530974429752

到这里还好。现在我想绘制它,但它让我很困惑,我无法理解为了使用上述数据绘制散点图,我必须传递什么以及如何传递参数。我是可视化的新手。 :(

【问题讨论】:

    标签: python-3.x pandas dataframe matplotlib plot


    【解决方案1】:

    为您创建的不同数据集和您获得的不同结果尝试散点图。然后你当然会看到这些模式。

    这是我用来创建散点图的代码 sn-p。如果您不熟悉可视化,希望对您有所帮助。 在这里,我从两个单独的文件 xdata.txt 和 ydata.txt 中获取 x 和 y 的输入。它们应该是简单的文件,其中您要绘制的数据用新行分隔。

    即-

    xdata.txt file
    1.208531 
    0.169742 
    0.119691
    0.151515 
    0.632653
    0.104000
    3.313433
    
    ydata.txt file
    0.010000
    0.010000
    0.010000
    0.010000
    0.010000
    1.125000
    1.076923
    

    当然,您可以更改此设置并创建自己的 numpy 数组,以便以方便的方式获取要绘制的数据。

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.fromfile("xdata.txt",float,-1," ")
    y = np.fromfile("ydata.txt",float,-1," ")
    
    plt.scatter(x, y,alpha=0.5)
    plt.show()
    

    如果导入不起作用,那么您必须使用 pip 安装所需的包。

    【讨论】:

    • 嗨.. 感谢您的意见。但是准确度得分(X_test 和 y_test)是否有可能提供一些点来绘制散点图。
    • 我现在明白你的问题了。你似乎有一些 3d 数据。因此,要制作 2d 图,您需要选择其中的 2 个。首先尝试绘制 fre vs critical_value,然后绘制 loc vs critical_value。在同一个图中绘制所有三个“训练数据”、“测试数据”和“回归器的输出值”(可能以不同的颜色)。然后当然可以尝试像曲面图这样的 3D 绘图,您将看到回归量的准确度。但我有一种感觉,你需要更多的数据点才能在这里做好。但是您可以先尝试使用这 14 个数据点来理解事物。
    • 其实我认为 OP 不理解 accuracy_score 返回一个标量,在图中,它只是 0 到 1 之间轴上的一个点。这是问题的正确答案
    • 既然你有上面的所有点,代码可以将它们绘制成二维。对于 3D 情节寻找类似的东西。 stackoverflow.com/questions/1985856/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2013-05-12
    • 1970-01-01
    • 2016-03-19
    • 2023-03-15
    • 2021-08-15
    • 2017-09-23
    相关资源
    最近更新 更多