【问题标题】:How do I plot a non-linear model using matplotlib?如何使用 matplotlib 绘制非线性模型?
【发布时间】:2016-10-31 09:40:38
【问题描述】:

我对如何继续实现这一目标有点迷茫。通常使用线性模型,当我执行线性回归时,我只需获取训练数据 (x) 和输出数据 (y) 并使用 matplotlib 绘制它们。现在我有 3 个功能和我的输出/观察 (y)。谁能指导我如何使用 matplotlib 绘制这种模型?我的目标是拟合多项式模型并使用 matplotlib 绘制多项式。

%matplotlib inline
import sframe as frame
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model

# Initalize SFrame
sales = frame.SFrame('kc_house_data.gl/')

# Separate data into test and training data 
train_data,test_data = sales.random_split(.8,seed=0)

# Organize data into training and testing data 

train_x = train_data[['sqft_living', 'bedrooms', 'bathrooms']].to_dataframe().values
train_y = train_data[['price']].to_dataframe().values
test_x = test_data[['sqft_living', 'bedrooms', 'bathrooms']].to_dataframe().values
test_y = test_data[['price']].to_dataframe().values


# Create a model using sklearn with multiple features
regr = linear_model.LinearRegression(fit_intercept=True, n_jobs=2)

# test predictions
regr.predict(train_x)

# Prepare to plot the data

注意:

train_x 变量包含我的 3 个特征,我的 train_y 包含输出数据。我使用 SFrame 来包含数据。 SFrame 能够将自身转换为数据框(在 Pandas 中使用)。使用转换我可以获取值。

【问题讨论】:

  • 这是否意味着您的函数有 3 个自变量而不是 1 个?如果是这样,那确实很难想象。
  • 我明白你的意思了。我想我的目标是将我的特征转化为 3 次多项式,然后绘制它。我在 sklearn 上找到了一些关于多项式特征的文档。我还在研究如何使用它。 stats.stackexchange.com/questions/58739/…
  • @Andras 文档的问题在于,尽管看起来这些示例是使用 matplotlib 绘制的,但从未显示文档作者如何做到这一点的示例。 scikit-learn.org/stable/modules/…
  • 我的问题其实很幼稚;我没有机器学习和非线性编程方面的经验。
  • @AndrasDeak 我想我很困惑。当您提到 3 个自变量时,我立即开始四处搜索并找到了 Matlab graph plotting thread about that,我立即开始认为我正在绘制一个类似于我发现的东西。感谢您的澄清。

标签: matplotlib machine-learning scikit-learn


【解决方案1】:

与一次绘制具有多个离散特征的非线性模型相比,我发现根据我的观察/输出简单地观察每个特征对我的研究来说更好、更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 2014-12-13
    • 1970-01-01
    • 2021-02-05
    • 2010-12-13
    • 1970-01-01
    • 2022-11-28
    • 2023-03-30
    相关资源
    最近更新 更多