达斯克客户端.map返回dask datafram上的KeyError

2024-05-18 11:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python dask创建一个更新的随机森林分类示例,正如最初描述的here。在

当我试图通过一个训练集客户端.map函数,它抛出一个KeyError,根据错误消息,我不确定我做错了什么。在

以下是我所拥有的:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

from distributed import Client, progress, wait
c = Client('127.0.0.1:8786')
c

columns = ['trip_distance', 'pickup_longitude', 'pickup_latitude', 
           'dropoff_longitude', 'dropoff_latitude', 'payment_type', 
           'fare_amount', 'mta_tax', 'tip_amount', 'tolls_amount']

import dask.dataframe as dd

dfs = dd.read_csv('s3://dask-data/nyc-taxi/2015/*.csv', 
                 parse_dates=['tpep_pickup_datetime', 'tpep_dropoff_datetime'],
                 storage_options={'anon': True})
dfs = c.persist(dfs)
progress(dfs)

def fit(df):
    est = RandomForestClassifier(n_estimators=4)
    est.fit(df[columns], df.passenger_count)
    return est

train, test = dfs.random_split([0.7, 0.3])

estimators = c.map(fit, train)
progress(estimators, complete=False)

这会引发错误:

^{pr2}$

根据错误输出,错误似乎是在estimators = c.map(fit, train)语句处触发的,这表明def fit(df):可能需要修改,以便dask数据帧可以正确地传递给est.fit(),但我不确定如何进行。在


Tags: fromimportmapdf错误trainamountdask