3

我正在使用 Pycaret 分类对我超过 100 万个数据(这包括 18 个分类和 1 个数字特征)进行一些机器学习。Pandas Dataframe 存储从 Oracle 数据库中提取的数据。这些步骤大约需要 2-3 分钟。当我的数据被预处理时,它需要超过 7 个小时。有没有办法提高速度?

这是python SQL代码:

from pycaret.classification import *
# init setup
clfl = setup(data=SQL_Query, target = 'cat_ind',silent = True, html = False,categorical_features= [cat1,cat2,cat3,cat4,cat5,cat6,cat7,cat8,cat9,cat10,cat11,cat12,cat13,cat14,cat15,cat16,cat17],numeric_features=['amt'],ignore_features=['paid','catignore']remove_outliers=True,train_size=0.9,handle_unknown_categorical=True, unknown_categorical_method='most_frequent'))
4

1 回答 1

0

您可以尝试Oracle数据库 (21c) 和 Oracle 自治数据库目前提供的适用于 Python 的 Oracle 机器学习(OML4Py)。OML4Py 使用 DataFrame 代理对象,以便数据可以保留在数据库中。您可以在这些代理对象上调用选择重载的 Pandas DataFrame 函数,其中生成相应的 SQL 并在数据库中运行(无数据移动)。这利用数据库作为高性能计算引擎。Oracle Machine Learning 数据库内机器学习算法也通过 Python API(以及 SQL 和 R API)公开,其中模型构建直接在数据库中进行。您可以通过这个免费的 OML4Py LiveLab 在 Oracle 自治数据库上试用 OML4Py

于 2021-12-03T18:48:43.647 回答