python - 预测值的数据集索引与实际值的索引不匹配
问题描述
我是一个 python 新手,正在尝试用神经网络解决回归问题。我正处于想要绘制预测与实际然后确定回归系数的阶段。
模型训练
#import statements
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
%matplotlib inline
#importing the dataset
data = pd.read_csv("PPV_dataset.csv")
X = np.array(data.drop(["PPV"],1))
y = np.array(data["PPV"])
#model training & prediction
nn = MLPRegressor(hidden_layer_sizes=(100,), activation = 'logistic', solver = 'sgd')
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
nn.fit(X_train, y_train)
pred = nn.predict(X_test)
#indices of test set
a = X_test
indices = []
for row in range(len(X)):
for i in range(len(a)):
if np.all(a[i]==X[row]):
indices.append(row)
#listing actual values in an array
actual_values = []
for i in range(len(indices)):
actual_values.append(y[indices[i]])
比较实际值和预测值
len(actual_values)
13
len(pred)
12
解决方案
您应该使用matplotlib
和seaborn
库来绘制图形,并用于系数 r_sq = nn.score(actual_values, pred)
我建议seaborn.lmplot()
在你的情况下使用
对于罗伯特的特殊情况,我建议:
from sklearn.metrics import r2_score
r2_score(y_true, y_pred)
推荐阅读
- java - 无法通过限定符注入
- java - 在webdriver java中将凭证循环为数组
- c# - IActivityLogger 不记录 PromptDialog.Choice 文本
- reactjs - 无需摇动 React Native 即可打开 Dev Menu 或重新加载应用程序
- java - 在 Java 中进行远程调用时要处理哪些异常
- r - 使用 tryCatch 记录失败的第 i 次迭代
- java - 我可以在 JPA 中修改 id 类型,从“int”到“long”而不影响 DB 中已经存在的表中的数据吗
- python - 在 django 管理面板中重定向不正确
- javascript - WebAssembly:堆存储在哪里?是否可以通过 Javascript 访问它?
- php - 如何在发行一本书时通过 PHP 中的 ISBN 号动态显示某本书的可用性?