Package: buildml
BuildMLBuildML is a Python machine-learning library designed to simplify the process of data preparation, feature engineering, model building, and evaluation. It provides a collection of tools for both classification and regression tasks, as well as functionalities for data exploration and manipulation. BuildML is a distribution of theTechLeocommunity to make complex machine-learning processes, easy.AuthorTechLeoEmail:techleo.ng@outlook.comGitHub:TechLeo GitHubLinkedIn:TechLeo LinkedInContactFor inquiries, suggestions, or feedback, please feel free to reach out to the author:Team Lead:Onyiriuba LeonardPersonal Email:workwithtechleo@gmail.comCompany Email:techleo.ng@outlook.comGitHub Issues:BuildML IssuesLinkedIn Messages:TechLeo LinkedInYour feedback is valuable and contributes to the continuous improvement of BuildML. The author welcomes collaboration and looks forward to hearing from the users of MLwiz.FeaturesFeatures from the current release.Data Loading and Handlingget_dataset: Load a dataset.get_training_test_data: Split the dataset into training and test sets.load_large_dataset: Load a large dataset efficiently.reduce_data_memory_useage: Reduce memory usage of the dataset.Data Cleaning and Manipulationdrop_columns: Drop specified columns from the dataset.fix_missing_values: Handle missing values in the dataset.fix_unbalanced_dataset: Address class imbalance in a classification dataset.filter_data: Filter data based on specified conditions.remove_duplicates: Remove duplicate rows from the dataset.rename_columns: Rename columns in the dataset.replace_values: Replace specified values in the dataset.reset_index: Reset the index of the dataset.set_index: Set a specific column as the index.sort_index: Sort the index of the dataset.sort_values: Sort the values of the dataset.Data Formatting and Transformationcategorical_to_datetime: Convert categorical columns to datetime format.categorical_to_numerical: Convert categorical columns to numerical format.numerical_to_categorical: Convert numerical columns to categorical format.column_binning: Bin values in a column into specified bins.Exploratory Data Analysiseda: Perform exploratory data analysis on the dataset.eda_visual: Visualize exploratory data analysis results.pandas_profiling: Generate a Pandas Profiling report for the dataset.sweetviz_profile_report: Generate a Sweetviz Profile Report for the dataset.count_column_categories: Count the categories in a categorical column.unique_elements_in_columns: Get the unique elements that exist in each column in the dataset.Feature Engineeringextract_date_features: Extract date-related features from a datetime column.polyreg_x: Get the polynomial regression x for independent variables after specifying the degree.select_features: Select relevant features for modeling.select_dependent_and_independent: Select dependent and independent variables.Data Preprocessingscale_independent_variables: Scale independent variables in the dataset.remove_outlier: Remove outliers from the dataset.split_data: Split the dataset into training and test sets.Model Building and Evaluationpoly_get_optimal_degree: Find the best degree for polynomial regression.get_bestK_KNNregressor: Find the best K value for KNN regression.train_model_regressor: Train a regression model.regressor_predict: Make predictions using a regression model.regressor_evaluation: Evaluate the performance of a regression model.regressor_model_testing: Test a regression model.polyreg_graph: Visualize a polynomial regression graph.simple_linregres_graph: Visualize a regression graph.build_multiple_regressors: Build multiple regression models.build_multiple_regressors_from_features: Build regression models using selected features.build_single_regressor_from_features: Build a single regression model using selected features.get_bestK_KNNclassifier: Find the best K value for KNN classification.train_model_classifier: Train a classification model.classifier_predict: Make predictions using a classification model.classifier_evaluation: Evaluate the performance of a classification model.classifier_model_testing: Test a classification model.classifier_graph: Visualize a classification graph.build_multiple_classifiers: Build multiple classification models.build_multiple_classifiers_from_features: Build classification models using selected features.build_single_classifier_from_features: Build a single classification model using selected features.Data Aggregation and Summarizationgroup_data: Group and summarize data based on specified conditions.Data Type Handlingselect_datatype: Select columns of a specific datatype in the dataset.InstallationYou can install BuildML using pip:pipinstallbuildmlExample UsageExample 1importnumpyasnp
importpandasaspd
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.ensembleimportRandomForestClassifier,DecisionTreeClassifier
fromsklearn.snmimportSVC
frombuildmlimportSupervisedLearningdataset=pd.read_csv("Your_file_path")# Load your dataset(e.g Pandas DataFrame)data=SupervisedLearning(dataset)# Exploratory Data Analysiseda=data.eda()eda_visual=data.eda_visual()# Build and Evaluate Classifierclassifiers=["LogisticRegression(random_state = 0)","RandomForestClassifier(random_state = 0)","DecisionTreeClassifier(random_state = 0)","SVC()"]build_model=data.build_multiple_classifiers(classifiers,kfold=5,cross_validation=True,graph=True,length=8,width=12)Example 2: Working on a dataset with train and test data given.# Import Librariesimportpandasaspd
importnumpyasnp
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.svmimportSVC
fromsklearn.ensembleimportRandomForestClassifier
fromsklearn.treeimportDecisionTreeClassifier
fromxgboostimportXGBClassifier
frombuildmlimportSupervisedLearning# Get Datasettraining_data=pd.read_csv("train.csv")test_data=pd.read_csv("test.csv")dataset=pd.concat([training_data,test_data],axis=0)# BuildML on Datasetautomate_training=SupervisedLearning(training_data)automate_test=SupervisedLearning(test_data)automate=[automate_training,automate_test]# Exploratory Data Analysistraining_eda=automate_training.eda()test_eda=automate_test.eda()# Data Cleaning and Transformationtraining_eda_visual=automate_training.eda_visual(y="Specify what you are predicting",figsize_barchart=(55,10),figsize_heatmap=(15,10),figsize_histogram=(35,20))fordatainautomate:data.reduce_data_memory_useage()data.drop_columns("Drop irrelevant columns")data.categorical_to_numerical()# If your data has categorical featuresselect_variables=automate_training.select_dependent_and_independent(predict="Loan Status")# Further Data Preparation and Segregationtraining_data_clean=automate_training.get_dataset()test_data_clean=automate_test.get_dataset()unbalanced_dataset_check=automate_training.count_column_categories(column="Specify what you are predicting")split_data=automate_training.split_data()fix_unbalanced_data=automate_training.fix_unbalanced_dataset(sampler="RandomOverSampler",random_state=0)check_unbalanced_data_fix=automate_training.count_column_categories(column="Specify what you are predicting",test_data=True)# Model Buildingclassifiers=[LogisticRegression(random_state=0),SVC(),RandomForestClassifier(random_state=0),DecisionTreeClassifier(random_state=0),XGBClassifier(random_state=0)]build_model=automate_training.build_multiple_classifiers(classifiers=classifiers,kfold=10,cross_validation=True,graph=True)AcknowledgmentsBuildML relies on several open-source libraries to provide its functionality. We would like to express our gratitude to the developers and contributors of the following libraries:NumPyPandasMatplotlibSeabornyData ProfilingSweetvizImbalanced-Learn (imblearn)Scikit-learnWarningsDatatableThe BuildML library builds upon the functionality provided by these excellent tools, We sincerely thank the maintainers and contributors of these libraries for their valuable contributions to the open-source community.❤️ SupportBuildMLIf you find BuildML helpful and would like to support its development, there are several ways you can contribute:☕ Buy Me a CoffeeYou can show your appreciation bybuying me a coffee. Every little bit helps and goes directly towards keeping this project maintained and improving.🌟 SponsorshipConsider becoming a sponsor to provide ongoing support. Sponsors receive special recognition and exclusive perks:🎉 Exclusive updates on the latest features and developments.🚀 Early access to pre-releases and beta versions.📢 Special mention in the project documentation and README.Become a sponsor by clicking on the "Sponsor" button on theBuildML repository.👩‍💻 ContributeIf you're a developer, you can contribute directly by:🐛 Reporting bugs or suggesting improvements by openingissues.🛠 Submitting pull requests to enhance the codebase.No contribution is too small, and your involvement is highly appreciated!Thank you for considering supporting BuildML! Your generosity keeps the project alive and thriving. 🚀LicenseBuildML is distributed under the MIT License. Feel free to use, modify, and distribute it according to the terms of the license.Changelogv1.0.0 (January 2024):First releasev1.0.1 (January 2024):Removed boxplot graph fromeda_visual.Added new parameters foreda_visual.Removeduser_guidefrom SupervisedLearning parameter in documentation.Improved documentation.v1.0.2 (January 2024):Improved documentation.Fix for building all models without splitting the data.Updatedrequirements.txtfile.Fixed dependency error in installation.v1.0.3 (January 2024):Allow the methodcount_column_categoriesto work for split_data.Improved documentation.v1.0.4 (January 2024):Improved documentation.v1.0.5 (January 2024):Improved documentation.Created external documentation for BuildML.v1.0.6 (January 2024):Fixed polynomial regression graphUpdated documentation on build_single_regressor_from_featuresUpdated documentation on build_single_classifier_from_featuresImporved documentation forpolyreg_graphImporved documentation forsplit_dataAdded option to specify the test_size insplit_databut default parameter remains 0.2Created methodpoly_get_optimal_degreeto find the best degree for polynomial regression.UpdatedREADME.mdfile.v1.0.7 (January 2024):Fixedself.__polynomial_regressionnot defined.Improved documentation forbuild_single_classifier_from_features.Improved documentation forbuild_single_regressor_from_features.Improved documentation forbuild_multiple_classifier_from_features.Improved documentation forbuild_multiple_regressor_from_features.v1.0.8 (January 2024):Fixed unstable release v1.0.7.v1.0.9 (January 2024):Fixed unstable release v1.0.8.ContributorsWe'd like to express our gratitude to the following contributors who have influenced and supported BuildML:Onyiriuba Leonard: for overseeing the entire project development lifecycle.Role: Project Lead and Maintainer.Email:workwithtechleo@gmail.com.The TechLeo Community: for allowing the use of this project as a way to explain, learn, test, understand, and make easy, the machine learning process.Role: Testers.Email:techleo.ng@gmail.com.