这个库将帮助您轻松地为所有类型的数据转换并行化python代码。
mlmr的Python项目详细描述
MLMR
这个库将帮助您轻松地为所有类型的数据转换并行化python代码。
核心功能建立在Map-Reduce范式之上。在这个库中,映射部分使用本机进行并行化
pythonmultiprocessing
模块。在
安装
pip install mlmr
使用
为了了解库API规范和高级用法,我建议您从以下简短教程开始:
在这里,我将发布几个真实的mlmr
API应用程序。在
MapReduce时尚示例中的平方和
^{pr2}$Pandas在MapReduce时尚示例中应用并行化
在这个示例中,函数对df
执行并行数据转换(pd数据帧, pd系列).
根据n_jobs
参数,计算要并行运行的进程数。数据平均分为数
进程切片。然后将our_transform_func
并行地应用到每个片上(每个进程都有自己的片)。
计算完成后,所有的变换结果都被展平。返回展平结果。在
frommlmr.functionimporttransform_concatdefcomutation_costly_transformation(*_):passdefour_transform_func(df):returndf.apply(cosly_computation_func)df_transformed=transform_concat(df,transform_func=our_transform_func,n_jobs=-1)
Sklearn MapReduce变压器集成到管道
fromsklearn.pipelineimportPipelinefromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.ensembleimportRandomForestClassifierfrommlmr.transformersimportBaseMapReduceTransformerdefcomutation_costly_text_transformation(df):passclassTextPreprocessor(BaseMapReduceTransformer):deftransform_part(self,X):returncomutation_costly_text_transformation(X)n_jobs=4text_classification_pipeline=Pipeline([('text_preprocessor',TextPreprocessor(n_jobs=n_jobs)),('vectorizer',TfidfVectorizer(analyzer="word",max_features=10000)),('classifier',RandomForestClassifier(n_estimators=100,n_jobs=n_jobs))])
替代实施:
importpandasaspdfromsklearn.pipelineimportPipelinefromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.ensembleimportRandomForestClassifierfrommlmr.transformersimportFunctionMapReduceTransformerdefget_split_data_func(n_slices):# wrapper function of split data functiondefsplit_data(data):returnnp.array_split(data,n_slices)returnsplit_datadefcomutation_costly_text_transformation(df):passn_jobs=4text_classification_pipeline=Pipeline([('text_preprocessor',FunctionMapReduceTransformer(map_func=comutation_costly_text_transformation,reduce_func=pd.concat,data_split_func=get_split_data_func(n_jobs),n_jobs=n_jobs)),('vectorizer',TfidfVectorizer(analyzer="word",max_features=10000)),('classifier',RandomForestClassifier(n_estimators=100,n_jobs=n_jobs))])
- 项目
标签: