VerticaPy简化了Vertica中的数据探索、数据清理和机器学习。
verticap的Python项目详细描述
在
:loudspeaker:2020-06-27:VerticaPy是Vertica ML Python的新名称。在
眩晕
VerticaPy是一个Python库,具有类似scikit的功能,用于对Vertica中存储的数据进行数据科学项目,利用Vertica的速度和内置的分析和机器学习功能。它支持整个数据科学生命周期,使用“管道”机制顺序化数据转换操作,并提供漂亮的图形选项。
如今,“大数据”是数据科学界的主要话题之一,而数据科学家往往是任何组织的中心。变得更加数据驱动的好处是不可否认的,而且往往是行业生存所必需的。
Vertica是第一个真正的分析柱状数据库,现在仍然是市场上速度最快的数据库。然而,单靠SQL还不够灵活,无法满足数据科学家的需求。
Python很快就成为这个领域中最受欢迎的工具,因为它的高度抽象和令人印象深刻的庞大和不断增长的库集使它具有很大的灵活性。它的可访问性导致了流行和性能良好的api的开发,比如pandas和scikitlearn,以及一个专门的数据科学家社区。不幸的是,Python只能作为一个单节点进程在内存中工作。这个问题导致了分布式编程语言的兴起,但是它们也被限制为内存中的进程,因此,在这个时代,永远无法处理您的所有数据,并且移动数据进行处理的成本也很高。除此之外,数据科学家还必须找到方便的方法来部署他们的数据和模型。整个过程很费时。
^{str}旨在解决所有这些问题。这个想法很简单:VerticaPy没有移动数据进行处理,而是将逻辑引入到数据中。
经过三年的努力,我们很荣幸能为您带来垂直感。
主要优点:
- 轻松的数据探索。在
- 快速数据准备。在
- 在数据库机器学习。在
- 简单的模型评估。在
- 模型部署简单。在
在
安装
要使用pip安装VerticaPy,请执行以下操作:
# Latest release version root@ubuntu:~$ pip3 install verticapy # Latest commit on master branch root@ubuntu:~$ pip3 install git+https://github.com/vertica/verticapy.git@master
要从源目录安装VerticaPy,请从根目录运行以下命令:
^{pr2}$文件
有关详细的HTML文档,请访问:
https://www.vertica.com/python/documentation_last/
连接到数据库
VerticaPy兼容多个客户端。在
本机客户端(推荐)
importvertica_python# Connection using all the DSN informationconn_info={'host':"10.211.55.14",'port':5433,'user':"dbadmin",'password':"XxX",'database':"testdb"}cur=vertica_python.connect(**conn_info).cursor()# Connection using directly the DSNfromverticapy.utilitiesimportto_vertica_python_format# This function will parse the odbc.ini filedsn="VerticaDSN"cur=vertica_python.connect(**to_vertica_python_format(dsn)).cursor()
ODBC
importpyodbc# Connection using all the DSN informationdriver="/Library/Vertica/ODBC/lib/libverticaodbc.dylib"server="10.211.55.14"database="testdb"port="5433"uid="dbadmin"pwd="XxX"dsn=("DRIVER={}; SERVER={}; DATABASE={}; PORT={}; UID={}; PWD={};").format(driver,server,database,port,uid,pwd)cur=pyodbc.connect(dsn).cursor()# Connection using directly the DSNdsn=("DSN=VerticaDSN")cur=pyodbc.connect(dsn).cursor()
JDBC
importjaydebeapi# Vertica Server Detailsdatabase="testdb"hostname="10.211.55.14"port="5433"uid="dbadmin"pwd="XxX"# Vertica JDBC class namejdbc_driver_name="com.vertica.jdbc.Driver"# Vertica JDBC driver pathjdbc_driver_loc="/Library/Vertica/JDBC/vertica-jdbc-9.3.1-0.jar"# JDBC connection stringconnection_string='jdbc:vertica://'+hostname+':'+port+'/'+databaseurl='{}:user={};password={}'.format(connection_string,uid,pwd)conn=jaydebeapi.connect(jdbc_driver_name,connection_string,{'user':uid,'password':pwd},jars=jdbc_driver_loc)cur=conn.cursor()
快速入门
使用pip命令安装库。在
root@ubuntu:~$ pip3 install verticapy
创建vertica光标。在
fromverticapyimportvertica_conncur=vertica_conn("VerticaDSN").cursor()
创建关系的虚拟数据帧。在
fromverticapyimportvDataFramevdf=vDataFrame("my_relation",cursor=cur)
如果手头没有数据,可以很容易地导入已知的数据集。在
fromverticapy.learn.datasetsimportload_titanicvdf=load_titanic(cursor=cur)
检查您的数据:
vdf.describe()# Outputmin25%50%75%age0.3321.028.039.0body1.079.25160.5257.5fare0.07.895814.454231.3875parch0.00.00.00.0pclass1.01.03.03.0sibsp0.00.00.01.0survived0.00.00.01.0maxuniqueage80.096body328.0118fare512.3292277parch9.08pclass3.03sibsp8.07survived1.02
使用set_option函数打印SQL查询:
set_option("sql_on",True)vdf.describe()# Output## Compute the descriptive statistics of all the numerical columns ##SELECTSUMMARIZE_NUMCOL("age","body","survived","pclass","parch","fare","sibsp")OVER()FROMpublic.titanic
使用VerticaPy,现在可以用几行代码来解决ML问题。在
fromverticapy.learn.model_selectionimportcross_validatefromverticapy.learn.ensembleimportRandomForestClassifier# Data Preparationvdf["sex"].label_encode()["boat"].fillna(method="0ifnull")["name"].str_extract(' ([A-Za-z]+)\.').eval("family_size",expr="parch + sibsp + 1").drop(columns=["cabin","body","ticket","home.dest"])["fare"].fill_outliers().fillna()# Model Evaluationcross_validate(RandomForestClassifier("rf_titanic",cur,max_leaf_nodes=100,n_estimators=30),vdf,["age","family_size","sex","pclass","fare","boat"],"survived",cutoff=0.35)# Outputaucprc_auc1-fold0.98771144278606910.95304659150393392-fold0.99655550146056420.76764853514257213-fold0.99272392165493010.6419135521132449avg0.9923302886340.787536226253std0.003621284640930.12779562393accuracylog_loss1-fold0.9712918660287080.05020525412238712-fold0.9832535885167460.02981677517984573-fold0.9648241206030150.0392745694400433avg0.9731231917160.0397655329141std0.00763442367290.00833079837099precisionrecall1-fold0.960.962-fold0.95569620253164561.03-fold0.96478873239436620.9383561643835616avg0.9601616449750.966118721461std0.003713769123110.025535200301f1-scoremcc1-fold0.96872592820828840.93761194029850752-fold0.98671726755218210.96469710108784693-fold0.95880202873090970.9240569687684576avg0.971415074830.942122003385std0.01155389607530.0168949813163informednessmarkedness1-fold0.93761194029850750.93761194029850752-fold0.97378277153558070.95569620253164563-fold0.91851489454229180.9296324823943662avg0.9433032021250.940980208408std0.02291909542610.0109037699717csi1-fold0.92307692307692312-fold0.95569620253164563-fold0.9072847682119205avg0.928685964607std0.0201579224026
享受吧!在
- 项目
标签: