Machine learning 如何使用定长列表进行预处理?
我想用以下数据训练我的回归模型使用sklearn,并用它预测其他参数给出的收入: 但我在尝试适合我的模型时遇到了一些问题Machine learning 如何使用定长列表进行预处理?,machine-learning,scikit-learn,data-processing,Machine Learning,Scikit Learn,Data Processing,我想用以下数据训练我的回归模型使用sklearn,并用它预测其他参数给出的收入: 但我在尝试适合我的模型时遇到了一些问题 from sklearn import linear_model model = linear_model.LinearRegression() train_x = np.array([ [['Tom','Adam'], '005', 50], [['Tom'], '001', 100], [['Tom', 'Adam', 'Alex'], '0
from sklearn import linear_model
model = linear_model.LinearRegression()
train_x = np.array([
[['Tom','Adam'], '005', 50],
[['Tom'], '001', 100],
[['Tom', 'Adam', 'Alex'], '001', 150]
])
train_y = np.array([
50,
80,
90
])
model.fit(train_x,train_y)
>>> ValueError: setting an array element with a sequence.
我做了一些搜索,问题是train_x在所有ArrayStaff_id中的元素数量都不相同。
我想也许我应该在一些数组中添加一些额外的元素,以使长度一致。但我不知道如何准确地完成这一步。这个调用向量化吗?机器学习模型不能将这些列表作为输入。它会考虑你的列表作为字符列表的列表,因为你的列表包含字符串,每个字符串都是字符序列,可能什么也学不到。 通常,数组被用作处理时间序列数据的模型的输入,例如在NLP中,每个记录都是一个时间戳,包含要处理的单词列表 您应该将列表分解为不同的列,而不是将数组填充为与您建议的相同大小。 再创建3列-每个员工姓名对应一列:Tom、Adam和Alex。如果名称出现在列表中,则其单元格的值为1,否则为0 因此,您的表应该如下所示:
-------------------------------------------------------------------
staff_Tom | staff_Adam | staff_Alex | Manager_id | Budget | Revenue
-------------------------------------------------------------------
1 | 1 | 0 | 5 | 50 | 50 |
1 | 0 | 0 | 1 | 100 | 80 |
1 | 1 | 1 | 1 | 150 | 90 |
....
1 | 0 | 1 | 1 | 75 | ? |
您的模型将很容易了解和识别每个员工,并更快地收敛到解决方案