首页 > 解决方案 > 如何在我的代码中实现回归模型图?

问题描述

我有一个小学校项目,想以任何方式展示函数的情节,可能是这样:回归模型 我知道我的代码可能很糟糕,如果你有任何改进,就把它们扔给我。

这是我迄今为止编写的代码......我将数据手动编码到程序中。

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn import linear_model


Xtrain = np.array([[15, 15, 20, 30, 20, 20],
                   [10, 10, 15, 25, 15, 15],
                   [20, 20, 25, 35, 25, 25],
                   [20, 20, 30, 20, 30, 20],
                   [15, 15, 25, 15, 25, 15],
                   [25, 25, 35, 25, 35, 25],
                   [30, 30, 30, 30, 10, 10],
                   [25, 25, 25, 25, 10, 10],
                   [35, 25, 35, 35, 15, 15],
                   [20, 20, 30, 25, 30, 25],
                   [15, 15, 25, 20, 25, 20],
                   [25, 25, 35, 30, 35, 30],
                   [10, 10, 15, 25, 30, 20],
                   [10, 10, 10, 20, 25, 15],
                   [20, 20, 20, 30, 35, 25],
                   [20, 25, 25, 20, 30, 20],
                   [15, 20, 20, 15, 25, 15],
                   [25, 30, 30, 25, 35, 25]])

ytrain = np.array([20, 15, 25, 20, 15, 25, 15, 10, 20, 20, 15, 25, 15, 10, 20, 20, 15, 25])

lr = LogisticRegression().fit(Xtrain, ytrain)

yhat = lr.predict(Xtrain)

print (accuracy_score(ytrain, yhat))

标签: pythonscikit-learnregression

解决方案


问题是您的 Xtrain(换句话说,您的 Xaxis)由 6 个变量组成。这意味着它是 6 维的。除此之外,还有一个 ytrain 的 Y 维度。一共7个维度。很难在 2D 图表上可视化 7 个维度。但是,假设您想绘制 Xtrain 中关于 Ytrain 的第一列并将其绘制在预测的 yhat 之上,您可以执行以下操作。但是请注意,这不会满足您绘制完整 Xtrain 的最初目的。

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn import linear_model
import matplotlib.pyplot as plt


Xtrain = np.array([[15, 15, 20, 30, 20, 20],
                   [10, 10, 15, 25, 15, 15],
                   [20, 20, 25, 35, 25, 25],
                   [20, 20, 30, 20, 30, 20],
                   [15, 15, 25, 15, 25, 15],
                   [25, 25, 35, 25, 35, 25],
                   [30, 30, 30, 30, 10, 10],
                   [25, 25, 25, 25, 10, 10],
                   [35, 25, 35, 35, 15, 15],
                   [20, 20, 30, 25, 30, 25],
                   [15, 15, 25, 20, 25, 20],
                   [25, 25, 35, 30, 35, 30],
                   [10, 10, 15, 25, 30, 20],
                   [10, 10, 10, 20, 25, 15],
                   [20, 20, 20, 30, 35, 25],
                   [20, 25, 25, 20, 30, 20],
                   [15, 20, 20, 15, 25, 15],
                   [25, 30, 30, 25, 35, 25]])

ytrain = np.array([20, 15, 25, 20, 15, 25, 15, 10, 20, 20, 15, 25, 15, 10, 20, 20, 15, 25])

lr = LogisticRegression().fit(Xtrain, ytrain)

yhat = lr.predict(Xtrain)

plt.scatter(x=Xtrain[:,0],y=ytrain,color="blue")
plt.scatter(x=Xtrain[:,0],y=yhat,color="red")
plt.show()

输出如下。在这种情况下,预测值和观测值非常接近。如果我的解释有任何意义,或者我完全错误地阅读了问题要求,请告诉我。

从 Xtrain 绘制 1 个变量的输出


推荐阅读