Releases: vertica/VerticaPy
VerticaPy version 1.1.0
This release encompasses all the features introduced in 1.0.0
and introduces additional functionalities along with more precise docstrings.
Options
set_option
function has more options:
max_cellwidth
: Maximum width of any VerticaPy table's cell.max_tableheight
: Maximum height of VerticaPy tables.theme
: Theme used to display the VerticaPy objects (light
,dark
orsphinx
).verbosity
: This will set the amount of information to display while executing VerticaPy functions.
There are four levels of verbosity
:
- 0 (silent)
- 1 (warning)
- 2 (info)
- 3 (debug)
Machine Learning
PLS Regression
Partial Least Squares (PLS
) regression has been added to VerticaPy.
This integration will enhance VerticaPy's analytics capabilities, particularly benefiting Vertica customers who have expressed interest in utilizing PLS regression (PLSRegression
).
Example use:
from verticapy.machine_learning.vertica import PLSRegression
model = PLSRegression()
model.fit(
train_data,
[
"col1",
"col2",
"col3",
],
"Y",
test_data,
)
Note: All the ML models that were introduced in version 1.0.x
are also supported in version 1.1.x
.
Performance
QueryProfiler
has been greatly supplemented in this release:
QueryProfilerInterface
Now we have added the functionality of a session_control_param
parameter.
This allows users to enter the alter session SQL before profiling the queries.
QueryProfilerInterface
-
Added many more metrics for the profiled queries such as:
rows_filtered_sip
container_rows_filtered_sip
container_rows_pruned_sip
and more...
-
There is a new tab which helps you select particular tooltips from any select path id.
-
A new tab also highlights if there are any non-default
SESSION PARAMETERS
. -
Improved the efficiency of plotting the tree by chaching results.
QueryProfilerComparison
QueryProfilerComparison
class offers an extended set of functionalities, enabling the creation of complex trees with multiple metrics.
from verticapy.performance.vertica import QueryProfilerInterface
qprof_interface_1 = QueryProfilerInterface(
key_id = "key_1",
target_schema = "schema_1",
)
qprof_interface_2 = QueryProfilerInterface(
key_id = "key_2",
target_schema = "schema_1",
)
from verticapy.performance.vertica import QueryProfilerComparison
qprof_compare = QueryProfilerComparison(qprof_interface_1, qprof_interface_2)
qprof_compare.get_qplan_tree()
Deprecations
Release Notes
Changelogs
- Full Changelog: 1.0.4...1.0.5
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.5
This minor release has some significant feature additions with other changes. Some salient ones are listed below:
QueryProfilerStats
Added a new class which calculates some of the statistics for queries that can help diagnose query performance issues.
You can call the main function to perform all the tests:
qprof = QueryProfilerStats((109090909, 1))
qprof.main_tests()
It is also inherited by the QueryProfilerInterface class, so it can be used from that class as well. For example:
qprof = QueryProfilerInterface((109090909, 1))
qprof.main_tests()
QueryProfiler
-
Added the following new tables to the profile information:
- dc_scan_events
QueryProfilerInterface
-
Added option to toggle tooltip information. There are three new check boxes which control which information will be displayed:
- Aggregate
- Opeartors
- Descriptors
Unit tests
- Fixed some broken unit tests with a focus on QueryProfiler. This makes VerticaPy more robust against bugs.
Bugfixes
- Regression metrics were corrected which were previously giving erroneous results (AIC_SCORE, BIC_SCORE, R2_SCORE).
- In certain scenarios, the vDataFrame creation was taking too much time (Issue #1235). This was resolved.
- QueryProfiler import bug fix.
Release Notes
Changelogs
- Full Changelog: 1.0.4...1.0.5
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.4
This minor release has some significant feature additions with other changes. Some salient ones are listed below:
Query Profiler
- Now there is a new parameter
use_temp_relation
which allows users to display the temporary relations separately in theget_qplan_tree
. - Query start and stop time are also included in the get_queries table.
- New queries can be added to the same schema and key using the insert function.
qprof = QueryProfiler((109090909, 1))
qprof.insert(transactions = (41823718, 2))
QueryProfilerInterface
- Made the metric selecting widgets in the QueryProfilerInterface to be more intuitive.
- A new widget allows to directly jump to the specific query without having to press Next button multiple times.
- A success flag is added to the display to confirm if the query was run successfully.
- Added unit for the query execution time.
Machine Learning
- Added Vector Auto Regression (VAR) to the list of Vertica algortihms.
vDataFrame
- The Up and Down arrow of the
vDataFrame.idisplay()
are now larger in size.
Bugfixes
- Bugfix for auto-token refresh using OAuth.
- Empty vDataFrame can now be created.
import pandas as pd
from verticapy import read_pandas
df = pd.DataFrame()
df = df.reindex(columns = ["col1", "col2"])
read_pandas(df)
Release Notes
Changelogs
- Full Changelog: 1.0.3...1.0.4
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Daniel Mickens @DMickens
- Tyler Consigny @tconsigny
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.3
This minor release has some chagnes that focus on improving the QueryProfiler and QueryProfilerInterface.
Some main changes are:
- Improving the speed of the function
- Enhancing the UI
- Adding limitations to prevent overwriting of data when importing a file
Release Notes
Changelogs
- Full Changelog: 1.0.2...1.0.3
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Daniel Mickens @DMickens
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.2
This minor release has some significant feature additions with other changes. Some salient ones are listed below:
Pipelines (Beta)
Pipelines
is a YAML-based configuration for defining machine learning workflows, simplifying the process of setting up and managing machine learning pipelines.- For beginners, it provides an easy-to-learn alternative to Python and SQL reducing the initial barriers to entry for creating models.
- For more experienced users, it offers templating features to enhance modularity, minimize errors, and promote efficient code reuse in machine learning projects.
Performance
- We have enhanced the
QueryProfiler
to improve its robustness. - Introducing a completely new Query Profiler Interface, enabling users to navigate through various queries and access them without the need to re-enter all the code. All of this can be accomplished using only your mouse within Jupyter Notebook environments.
These updates significantly enhance the accessibility, debugging, and enhancement capabilities of your queries.
OAuth Refresh Tokens (Beta)
- We have updated the connector to accept OAuth refresh tokens.
- Additioanlly we have added a
prompt
option forverticapy.connection.new_connection
. This allows the user to enter the secrets discretly with a masked display.
Multi-TimeSeries (Beta)
We added a new Time Series class: TimeSeriesByCategory
. This allows the users to build multiple models based off on a category. The number of models created
are equal to the categories. This saves users time to create multiple models separately. For more information please see verticapy.machine_learning.vertica.tsa.ensemble.TimeSeriesByCategory
.
Plots
-
Two new plots have been added for plotly that were previously missing:
verticapy.machine_learning.vertica.decomposition.plot_scree
verticapy.machine_learning.vertica.decomposition.plot_var
Unit Tests
- We continue to shift our old tests to the new more robust format.
Examples
- Most of the
examples <https://github.com/vertica/VerticaPy/tree/master/examples>
_ have been updated with the latest verticapy format.
Release Notes
Changelogs
- Full Changelog: 1.0.0...1.0.1
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Vikash Singh @vikash018
- Zachary Nowak @zacandcheese
- Arash Fard @afard
- Abhishek Sharma @abhsharma2
- Tyler Consigny @tconsigny
- Jason Slaunwhite @jslaunwhite-microfocus
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.1
This release includes numerous modifications to the previous code aimed at enhancing the user experience.
New Options
The verticapy.set_option()
function now allows you to set the following options:
max_cellwidth
: Maximum width of VerticaPy table cells.max_tableheight
: Maximum height of VerticaPy tables.theme
: Set the display theme for VerticaPy objects to 'light' or 'dark'.
QueryProfiler
The verticapy.performance.vertica.qprof.QueryProfiler
class offers an extended set of functionalities, enabling the creation of complex trees with multiple metrics. This can help in finding ways to improve the performance of slow-running queries.
Website
A new website is now available. It includes all the important information about the different changes and a totally new documentation generated by Sphinx. Check it out here
Docstrings
Docstrings have been further enriched with relevant examples for more functions.
Release Notes
Changelogs
- Full Changelog: 1.0.0...1.0.1
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Arash Fard @afard
- Abhishek Sharma @abhsharma2
- Vikash Singh @vikash018
- Tyler Consigny @tconsigny
- Jason Slaunwhite @jslaunwhite-microfocus
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.0
This is our very first major release, which includes numerous modifications to the previous code aimed at enhancing the user experience.
CI/CD
The CI/CD pipeline is now more comprehensive, incorporating the following:
- Integration of Black for code formatting.
- Inclusion of Pylint to assess code robustness with a minimal threshold, ensuring code can be merged.
- Implementation of Pytest for optimized Unit Tests, with results compared to standard libraries such as sklearn or scipy.
- Integration of Codecov to monitor code coverage.
- Implementation of GitHub actions across different Python versions (3.9-3.12) to ensure support for all of them.
New Features
Some of the highlights of this release are:
Algorithms
- IsolationForest
- KPrototypes
- Poisson Regression
- AutoRegressive (AR)
- MovingAverages (MA)
- AutoRegressive Moving Averages (ARMA)
- AutoRegressive Integrated Moving Averages (ARIMA)
- Term Frequency * Inverse Document Frequency (TFIDF). It is still beta.
ML New features
- New function for finding the feature importance for XGBoost models.
- Classification metrics are now available for multiclass data/model using three methods: micro, macro, weighted, score and none. - average_precision_score is another new metric that is added to classification metrics. - roc_auc and prc_auc now work for multi-class classification using different averaging techniques stated above.
- Model names are now optional
- Model Tracking and Versioning now supported. Check out notebooks/ml/model_tracking_versioning/index.ipynb for more details.
- Model Export and Import: Now models can be exported to pmml, tensorflow, and binary. They can now be exported to another User Defined Location.
- Added Model Versioning / Tracking (MLOps)
SQL
- vDataFramesSQL is deprecated. Now, vDataFrame can be used directly to create vDataFrames from SQL.
Plotting
- Flexibility to select from the three renowned plotting libraries for professional plots: Matplotlib, Highcharts, Plotly.
Library Hierarchy
- Import structures have changed. The code has been completely restructured, which means that going forward all imports will be done differently. Currently, we still allow the previous structure of import, but it will gradually be deprecated.
Website
A new website will be soon available. It will include all the important information about the different changes and a totally new documentation generated by Sphinx.
Release Notes
Changelogs
- For a comprehensive list of all the changes, please refer to the change log.
- Full Changelog: 0.12.0...1.0.0
Installation
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy
If you want to install extra features, use:
python3 -m pip install verticapy[all]
Please report any issues on our GitHub page
Contributors
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Arash Fard @afard
- Tyler Consigny @tconsigny
- Vikash Singh @vikash018
- Abhishek Sharma @abhsharma2
- Matteo Monaldi @mat-shyR
- Abdelhak Zabour @VerticaDataScientist
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.0-beta.2
This is our very first beta release, which includes numerous modifications to the previous code aimed at enhancing the user experience.
Some of the highlights of this release are:
- Flexibility to select from the three renowned potting libraries for professional plots.
- The introduction of a wide range of classification metrics.
- Support for KPrototypes.
- Furthermore, due to code restructuring, the import syntax has changed and is now more intuitive.
For a comprehensive list of all the changes, please refer to the change log.
The release will be on available on the defaults and can be installed using:
python3 -m pip install verticapy==1.0.0b2
Please report any issues on our GitHub page
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Arash Fard @afard
- Tyler Consigny @tconsigny
- Vikash Singh @vikash018
If you would like to contribute then please visit our updated contributing guidelines.
What's Changed
- roc_auc_score for multiclass classification using micro and macro averaging by @mail4umar in #642
- Bug Fix by @oualib in #645
- Multiple bugs correction by @oualib in #646
- bar plot 2d for plotly by @mail4umar in #647
- 2D horizontal bar chart for plotly by @mail4umar in #649
- Bug - highcharts multi-density plot by @mail4umar in #652
- Contour plot bug fix by @mail4umar in #651
- bug fix - multi-line plot by @mail4umar in #654
- plotting visual bug fixes by @mail4umar in #650
- Fixing Plotting Bug by @oualib in #655
- 633 unit testing linearregression by @vikash018 in #648
- Updating Vertica docker to 12.0.4 0 by @afard in #661
- Average Precision Score by @mail4umar in #664
- Overwrite model parameter by @afard in #660
- Optional model name by @afard in #662
- Update change log by @mail4umar in #667
Full Changelog: 1.0.0-beta.1...1.0.0-beta.2
VerticaPy version 1.0.0-beta.1
This is our very first beta release, which includes numerous modifications to the previous code aimed at enhancing the user experience.
Some of the highlights of this release are:
Flexibility to select from the three renowned potting libraries for professional plots.
The introduction of a wide range of classification metrics.
Support for KPrototypes.
Furthermore, due to code restructuring, the import syntax has changed and is now more intuitive.
For a comprehensive list of all the changes, please refer to the change log.
The release will be on available on the defaults and can be install using:
python3 -m pip install verticapy==1.0.0b1
Please report any issues on our GitHub page
We would like to extend our thanks to all the contributors who made this release possible:
Badr Ouali @oualib
Umar Farooq Ghumman @mail4umar
Arash Fard @afard
Tyler Consigny @tconsigny
Vikash Singh @vikash018
If you would like to contribute then please visit our updated contributing guidelines.
VerticaPy version 1.0.0-beta
This is our very first beta release, which includes numerous modifications to the previous code aimed at enhancing the user experience.
Some of the highlights of this release are:
- Flexibility to select from the three renowned potting libraries for professional plots.
- The introduction of a wide range of classification metrics.
- Support for KPrototypes.
Furthermore, due to code restructuring, the import syntax has changed and is now more intuitive.
For a comprehensive list of all the changes, please refer to the change log.
The release will be on available on the defaults and can be install using:
python3 -m pip install verticapy
Please report any issues on our GitHub page
We would like to extend our thanks to all the contributors who made this release possible:
- Badr Ouali @oualib
- Umar Farooq Ghumman @mail4umar
- Arash Fard @afard
- Tyler Consigny @tconsigny
- Vikash Singh @vikash018
If you would like to contribute then please visit our updated contributing guidelines.