gpt4 book ai didi

python - 有效地将数据帧作为 y 和 X 传递给 scikit-learn 拟合

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:55 24 4
gpt4 key购买 nike

我从 read_sql_query 生成一个 pandas 数据框。它有三列,“结果、速度、权重”

我想使用 scikit-learn LinearRegression 来拟合 results = f(speed, weight)

我一直无法找到允许我将此数据帧或它的列切片传递给 LinearRegression.fit(y, X) 的正确语法。

print df['result'].shape
print df[['speed', 'weight']].shape
(8L,)
(8, 2)

但我无法将其传递给 fit

lm.fit(df['result'], df[['speed', 'weight']])

它抛出一个弃用警告和一个ValueError

DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. 
ValueError: Found arrays with inconsistent numbers of samples: [1 8]

获取目标和特征的数据帧并将它们传递给 fit 操作的高效、简洁的方法是什么?

这就是我生成示例的方式:

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(7), freq='D')

np.random.seed(seed=1111)
data = np.random.randint(1, high=100, size=len(days))
data2 = np.random.randint(1, high=100, size=len(days))
data3 = np.random.randint(1, high=100, size=len(days))
df = pd.DataFrame({'test': days, 'result': data,'speed': data2,'weight': data3})
df = df.set_index('test')
print(df)

最佳答案

您发送的值顺序不正确。所有实现 fit() 的 scikit-learn 估算器都接受输入 X, y 而不是 y, X,就像您正在做的那样。

试试这个:

lm.fit(df[['speed', 'weight']], df['result'])

关于python - 有效地将数据帧作为 y 和 X 传递给 scikit-learn 拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47217606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com