You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scikit-learn的MLPRegressor中适配二维特征

问题描述

创建了如下pandas DataFrame:

ModelCFL = pd.DataFrame(columns=['data_case', 'length'])

随后用CSV文件填充该DataFrame:

cases = ['0', '250']
for i in range(0, len(cases)):
    cases_data = pd.read_csv(cases[i] + '.csv', header=0, delimiter=";")
    cases_data.dropna(inplace=True)
    parser_data = cases_data['current'].tolist()
    ModelCFL.at[i, 'data_case'] = parser_data
    ModelCFL.at[i, 'length'] = cases[i]

接着生成X和Y变量:

X = ModelCFL.loc[:, 'data_case'].to_list()
Y = ModelCFL.loc[:, 'length'].to_list()

运行以下代码时:

Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, random_state=1)
CFL_ANN = MLPRegressor(max_iter=300, activation="relu", hidden_layer_sizes=(25, 25))
CFL_ANN.fit(Xtrain, Ytrain)
CFL_ANN_predict = CFL_ANN.predict(Xtest)

出现错误:

ValueError: could not convert string to float: '300,300,300'

问题核心:变量应为二维数值列表特征,但当前无法被解析为浮点数,需让MLPRegressor正确识别该特征。

解决方法

1. 正确解析current列为数值列表

错误根源是CSV中current列的内容是逗号分隔的字符串(如'300,300,300'),直接tolist()得到的是字符串列表而非数值列表。需要将每个字符串分割并转换为浮点数:

cases = ['0', '250']
for i in range(0, len(cases)):
    cases_data = pd.read_csv(cases[i] + '.csv', header=0, delimiter=";")
    cases_data.dropna(inplace=True)
    # 将每个current字符串按逗号分割并转成浮点数列表
    parser_data = cases_data['current'].apply(lambda x: [float(num) for num in x.split(',')]).tolist()
    ModelCFL.at[i, 'data_case'] = parser_data
    ModelCFL.at[i, 'length'] = cases[i]

2. 将X转换为MLP要求的二维数组格式

MLPRegressor的输入需要是**形状为(样本数, 特征数)**的二维数组,需把每个样本的数值列表转成一维数组,再组合成二维数组:

import numpy as np
# 转换为二维数组
X = np.array(ModelCFL['data_case'].tolist())

3. 将Y转换为数值类型

length当前是字符串类型('0'、'250'),回归任务需要数值类型,需转换为整数或浮点数:

Y = ModelCFL['length'].astype(int).tolist()

修改后的完整训练代码

Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, random_state=1)
CFL_ANN = MLPRegressor(max_iter=300, activation="relu", hidden_layer_sizes=(25, 25))
CFL_ANN.fit(Xtrain, Ytrain)
CFL_ANN_predict = CFL_ANN.predict(Xtest)

内容的提问来源于stack exchange,提问作者Felipe Quintero Suárez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:13:27