我有如下2D数组数据(M&C为自变量):
Data
我正试图使用Scikit MLPrepressor对这种回归(f(m,C)=y)进行建模.由于不知道如何对多变量输入进行建模,我try 将其建模为两个独立的单输入问题.例如,如何使用此输出预测C=2.3的曲线?如果有人能提出一种更优雅的方法来编程这个问题,我将不胜感激.
Code
# importing module
import numpy as np
import pandas as pd
from pandas import *
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPRegressor
# reading CSV file
#data = read_csv("data\Ex2.csv")
data = pd.DataFrame([[1,1,1],[2,4.28,5.65],[3,10.04,15.59],[4,18.38,32],[5,29.36,55.90],[6,43.06,88.18],[7,59.52,129.64],[8,78.79,181.02],[9,100.90,243],[10,125.89,316.22]], columns=['M','C=2.1','C=2.5'])
# converting column data to list
M = data['M'].values
C1 = data['C=2.1'].values
C2 = data['C=2.5'].values
C = np.column_stack((C1,C2))
M = M.reshape(M.shape[0],-1)
for i in range(0, 2):
Xtrain, Xtest, Ytrain, Ytest = train_test_split(M, C[:,i], test_size=0.2, random_state=42)
mlp = MLPRegressor(random_state=42, activation='relu', hidden_layer_sizes=(100,100,100,100,100,100,100,100,8))
mlp.fit(Xtrain, Ytrain.ravel())
Yguess = mlp.predict(Xtest)
Y = mlp.predict(M)
#plt.plot(Xtest[:,0], Ytest, '.')
#plt.plot(Xtest[:,0], Yguess, 'r.')
plt.plot(M, C[:,i], 'o')
plt.plot(M, Y, 'r')
Result