首页 > 解决方案 > 预测值的数据集索引与实际值的索引不匹配

问题描述

我是一个 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

数据集的图像 数据集

标签: pythonscikit-learnregression

解决方案


您应该使用matplotlibseaborn库来绘制图形,并用于系数 r_sq = nn.score(actual_values, pred)

我建议seaborn.lmplot()在你的情况下使用

对于罗伯特的特殊情况,我建议:

from sklearn.metrics import r2_score
r2_score(y_true, y_pred)

推荐阅读