From 07db6e01b54536e70eaf546b38218b01d6e962f5 Mon Sep 17 00:00:00 2001 From: Maneeshbhaskarpulidindi Date: Wed, 16 Oct 2024 08:10:31 +0530 Subject: [PATCH 1/5] Ridge Regression --- machine_learning/Ridge_Regression.py | 115 +++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 machine_learning/Ridge_Regression.py diff --git a/machine_learning/Ridge_Regression.py b/machine_learning/Ridge_Regression.py new file mode 100644 index 000000000000..f3fe4db3d26a --- /dev/null +++ b/machine_learning/Ridge_Regression.py @@ -0,0 +1,115 @@ +import numpy as np +import requests + +def collect_dataset(): + """Collect dataset of CSGO + The dataset contains ADR vs Rating of a Player + :return : dataset obtained from the link, as matrix + """ + response = requests.get( + "https://raw.githubusercontent.com/yashLadha/The_Math_of_Intelligence/" + "master/Week1/ADRvsRating.csv", + timeout=10, + ) + lines = response.text.splitlines() + data = [] + for item in lines: + item = item.split(",") + data.append(item) + data.pop(0) # This is for removing the labels from the list + dataset = np.matrix(data) + return dataset + +def run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_reg): + """Run steep gradient descent and updates the Feature vector accordingly + :param data_x : contains the dataset + :param data_y : contains the output associated with each data-entry + :param len_data : length of the data + :param alpha : Learning rate of the model + :param theta : Feature vector (weights for our model) + :param lambda_reg: Regularization parameter + :return : Updated Features using + curr_features - alpha_ * gradient(w.r.t. feature) + """ + n = len_data + + prod = np.dot(theta, data_x.transpose()) + prod -= data_y.transpose() + sum_grad = np.dot(prod, data_x) + + # Add regularization to the gradient + theta_regularized = np.copy(theta) + theta_regularized[0, 0] = 0 # Don't regularize the bias term + sum_grad += lambda_reg * theta_regularized # Add regularization to gradient + + theta = theta - (alpha / n) * sum_grad + return theta + +def sum_of_square_error(data_x, data_y, len_data, theta, lambda_reg): + """Return sum of square error for error calculation + :param data_x : contains our dataset + :param data_y : contains the output (result vector) + :param len_data : len of the dataset + :param theta : contains the feature vector + :param lambda_reg: Regularization parameter + :return : sum of square error computed from given features + """ + prod = np.dot(theta, data_x.transpose()) + prod -= data_y.transpose() + sum_elem = np.sum(np.square(prod)) + + # Add regularization to the cost function + regularization_term = lambda_reg * np.sum(np.square(theta[:, 1:])) # Don't regularize the bias term + error = (sum_elem / (2 * len_data)) + (regularization_term / (2 * len_data)) + return error + +def run_ridge_regression(data_x, data_y, lambda_reg=1.0): + """Implement Ridge Regression over the dataset + :param data_x : contains our dataset + :param data_y : contains the output (result vector) + :param lambda_reg: Regularization parameter + :return : feature for line of best fit (Feature vector) + """ + iterations = 100000 + alpha = 0.0001550 + + no_features = data_x.shape[1] + len_data = data_x.shape[0] + + theta = np.zeros((1, no_features)) + + for i in range(iterations): + theta = run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_reg) + error = sum_of_square_error(data_x, data_y, len_data, theta, lambda_reg) + print(f"At Iteration {i + 1} - Error is {error:.5f}") + + return theta + +def mean_absolute_error(predicted_y, original_y): + """Return mean absolute error for error calculation + :param predicted_y : contains the output of prediction (result vector) + :param original_y : contains values of expected outcome + :return : mean absolute error computed from given features + """ + total = sum(abs(y - predicted_y[i]) for i, y in enumerate(original_y)) + return total / len(original_y) + +def main(): + """Driver function""" + data = collect_dataset() + + len_data = data.shape[0] + data_x = np.c_[np.ones(len_data), data[:, :-1]].astype(float) + data_y = data[:, -1].astype(float) + + lambda_reg = 1.0 # Set your desired regularization parameter + theta = run_ridge_regression(data_x, data_y, lambda_reg) + + len_result = theta.shape[1] + print("Resultant Feature vector : ") + for i in range(len_result): + print(f"{theta[0, i]:.5f}") + +if __name__ == "__main__": + main() + From b91bc91ee5a2165dd759754fc86dbcdf474d92b8 Mon Sep 17 00:00:00 2001 From: Maneeshbhaskarpulidindi Date: Wed, 16 Oct 2024 08:55:57 +0530 Subject: [PATCH 2/5] ridge_regression --- machine_learning/{Ridge_Regression.py => ridge_regression.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename machine_learning/{Ridge_Regression.py => ridge_regression.py} (100%) diff --git a/machine_learning/Ridge_Regression.py b/machine_learning/ridge_regression.py similarity index 100% rename from machine_learning/Ridge_Regression.py rename to machine_learning/ridge_regression.py From e23173e6a3901db28055477cfae8638a778d254d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:49:29 +0000 Subject: [PATCH 3/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/ridge_regression.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/machine_learning/ridge_regression.py b/machine_learning/ridge_regression.py index f3fe4db3d26a..a414224366c8 100644 --- a/machine_learning/ridge_regression.py +++ b/machine_learning/ridge_regression.py @@ -1,6 +1,7 @@ import numpy as np import requests + def collect_dataset(): """Collect dataset of CSGO The dataset contains ADR vs Rating of a Player @@ -20,6 +21,7 @@ def collect_dataset(): dataset = np.matrix(data) return dataset + def run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_reg): """Run steep gradient descent and updates the Feature vector accordingly :param data_x : contains the dataset @@ -36,7 +38,7 @@ def run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_re prod = np.dot(theta, data_x.transpose()) prod -= data_y.transpose() sum_grad = np.dot(prod, data_x) - + # Add regularization to the gradient theta_regularized = np.copy(theta) theta_regularized[0, 0] = 0 # Don't regularize the bias term @@ -45,6 +47,7 @@ def run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_re theta = theta - (alpha / n) * sum_grad return theta + def sum_of_square_error(data_x, data_y, len_data, theta, lambda_reg): """Return sum of square error for error calculation :param data_x : contains our dataset @@ -57,12 +60,15 @@ def sum_of_square_error(data_x, data_y, len_data, theta, lambda_reg): prod = np.dot(theta, data_x.transpose()) prod -= data_y.transpose() sum_elem = np.sum(np.square(prod)) - + # Add regularization to the cost function - regularization_term = lambda_reg * np.sum(np.square(theta[:, 1:])) # Don't regularize the bias term + regularization_term = lambda_reg * np.sum( + np.square(theta[:, 1:]) + ) # Don't regularize the bias term error = (sum_elem / (2 * len_data)) + (regularization_term / (2 * len_data)) return error + def run_ridge_regression(data_x, data_y, lambda_reg=1.0): """Implement Ridge Regression over the dataset :param data_x : contains our dataset @@ -79,12 +85,15 @@ def run_ridge_regression(data_x, data_y, lambda_reg=1.0): theta = np.zeros((1, no_features)) for i in range(iterations): - theta = run_steep_gradient_descent(data_x, data_y, len_data, alpha, theta, lambda_reg) + theta = run_steep_gradient_descent( + data_x, data_y, len_data, alpha, theta, lambda_reg + ) error = sum_of_square_error(data_x, data_y, len_data, theta, lambda_reg) print(f"At Iteration {i + 1} - Error is {error:.5f}") return theta + def mean_absolute_error(predicted_y, original_y): """Return mean absolute error for error calculation :param predicted_y : contains the output of prediction (result vector) @@ -94,6 +103,7 @@ def mean_absolute_error(predicted_y, original_y): total = sum(abs(y - predicted_y[i]) for i, y in enumerate(original_y)) return total / len(original_y) + def main(): """Driver function""" data = collect_dataset() @@ -104,12 +114,12 @@ def main(): lambda_reg = 1.0 # Set your desired regularization parameter theta = run_ridge_regression(data_x, data_y, lambda_reg) - + len_result = theta.shape[1] print("Resultant Feature vector : ") for i in range(len_result): print(f"{theta[0, i]:.5f}") + if __name__ == "__main__": main() - From 72ce6c6d54b0f67a02182b970af9891b2dd5f7d8 Mon Sep 17 00:00:00 2001 From: cclauss Date: Mon, 14 Sep 2026 05:10:26 +0000 Subject: [PATCH 4/5] updating DIRECTORY.md --- DIRECTORY.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 311a7c7c9de8..2655cb60e3b7 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -712,14 +712,18 @@ * [Loss Functions](machine_learning/loss_functions.py) * Lstm * [Lstm Prediction](machine_learning/lstm/lstm_prediction.py) + * [Mean Shift](machine_learning/mean_shift.py) * [Mfcc](machine_learning/mfcc.py) * [Mini Batch Gradient Descent](machine_learning/mini_batch_gradient_descent.py) * [Multilayer Perceptron Classifier](machine_learning/multilayer_perceptron_classifier.py) + * [Naive Bayes Text Classification](machine_learning/naive_bayes_text_classification.py) * [Polynomial Regression](machine_learning/polynomial_regression.py) * [Principle Component Analysis](machine_learning/principle_component_analysis.py) * [Q Learning](machine_learning/q_learning.py) * [Random Forest Classifier](machine_learning/random_forest_classifier.py) * [Random Forest Regressor](machine_learning/random_forest_regressor.py) + * [Ridge Regression](machine_learning/ridge_regression.py) + * [Rmsprop](machine_learning/rmsprop.py) * [Scoring Functions](machine_learning/scoring_functions.py) * [Self Organizing Map](machine_learning/self_organizing_map.py) * [Sequential Minimum Optimization](machine_learning/sequential_minimum_optimization.py) @@ -736,6 +740,7 @@ * [Arc Length](maths/arc_length.py) * [Area](maths/area.py) * [Area Under Curve](maths/area_under_curve.py) + * [Autocorrelation](maths/autocorrelation.py) * [Average Absolute Deviation](maths/average_absolute_deviation.py) * [Average Mean](maths/average_mean.py) * [Average Median](maths/average_median.py) @@ -781,6 +786,7 @@ * [Fibonacci](maths/fibonacci.py) * [Find Max](maths/find_max.py) * [Find Min](maths/find_min.py) + * [First Fundamental Form](maths/first_fundamental_form.py) * [Floor](maths/floor.py) * [Gamma](maths/gamma.py) * [Gaussian](maths/gaussian.py) @@ -843,6 +849,7 @@ * [Square Root](maths/numerical_analysis/square_root.py) * [Weierstrass Method](maths/numerical_analysis/weierstrass_method.py) * [Odd Sieve](maths/odd_sieve.py) + * [Padovan Sequence](maths/padovan_sequence.py) * [Pell Number](maths/pell_number.py) * [Perfect Cube](maths/perfect_cube.py) * [Perfect Number](maths/perfect_number.py) @@ -872,6 +879,8 @@ * [Reverse Factorial Recursive](maths/reverse_factorial_recursive.py) * [Segmented Sieve](maths/segmented_sieve.py) * Series + * [Alternate Harmonic Series](maths/series/alternate_harmonic_series.py) + * [Alternating Harmonic Series](maths/series/alternating_harmonic_series.py) * [Arithmetic](maths/series/arithmetic.py) * [Geometric](maths/series/geometric.py) * [Geometric Series](maths/series/geometric_series.py) @@ -911,6 +920,7 @@ * [Polygonal Numbers](maths/special_numbers/polygonal_numbers.py) * [Pronic Number](maths/special_numbers/pronic_number.py) * [Proth Number](maths/special_numbers/proth_number.py) + * [Spy Number](maths/special_numbers/spy_number.py) * [Triangular Numbers](maths/special_numbers/triangular_numbers.py) * [Trimorphic Number](maths/special_numbers/trimorphic_number.py) * [Ugly Numbers](maths/special_numbers/ugly_numbers.py) From c968e160a7d0202d97beecc132f90c212add79f0 Mon Sep 17 00:00:00 2001 From: cclauss Date: Tue, 15 Sep 2026 15:52:12 +0000 Subject: [PATCH 5/5] updating DIRECTORY.md --- DIRECTORY.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 48cc865cc705..06406719dc43 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -62,6 +62,7 @@ * [Generate Parentheses Iterative](backtracking/generate_parentheses_iterative.py) * [Hamiltonian Cycle](backtracking/hamiltonian_cycle.py) * [Knight Tour](backtracking/knight_tour.py) + * [M Coloring Problem](backtracking/m_coloring_problem.py) * [Match Word Pattern](backtracking/match_word_pattern.py) * [Minimax](backtracking/minimax.py) * [N Queens](backtracking/n_queens.py) @@ -108,6 +109,9 @@ ## [Blockchain](blockchain) * [Diophantine Equation](blockchain/diophantine_equation.py) + * [Merkle Tree](blockchain/merkle_tree.py) + * [Simple Blockchain](blockchain/simple_blockchain.py) + * [Simple Proof Of Work](blockchain/simple_proof_of_work.py) ## [Boolean Algebra](boolean_algebra) * [And Gate](boolean_algebra/and_gate.py) @@ -166,6 +170,7 @@ * [Porta Cipher](ciphers/porta_cipher.py) * [Rabin Miller](ciphers/rabin_miller.py) * [Rail Fence Cipher](ciphers/rail_fence_cipher.py) + * [Rc4](ciphers/rc4.py) * [Rot13](ciphers/rot13.py) * [Rsa Cipher](ciphers/rsa_cipher.py) * [Rsa Factorization](ciphers/rsa_factorization.py) @@ -180,6 +185,7 @@ * [Vernam Cipher](ciphers/vernam_cipher.py) * [Vigenere Cipher](ciphers/vigenere_cipher.py) * [Xor Cipher](ciphers/xor_cipher.py) + * [Xtea](ciphers/xtea.py) ## [Computer Vision](computer_vision) * [Cnn Classification](computer_vision/cnn_classification.py) @@ -198,6 +204,9 @@ ## [Conversions](conversions) * [Astronomical Length Scale Conversion](conversions/astronomical_length_scale_conversion.py) * [Binary To Decimal](conversions/binary_to_decimal.py) + * [Binary To Excess3](conversions/binary_to_excess3.py) + * [Binary To Gray](conversions/binary_to_gray.py) + * [Binary To Gray Code](conversions/binary_to_gray_code.py) * [Binary To Hexadecimal](conversions/binary_to_hexadecimal.py) * [Binary To Octal](conversions/binary_to_octal.py) * [Convert Number To Words](conversions/convert_number_to_words.py) @@ -205,6 +214,7 @@ * [Decimal To Binary](conversions/decimal_to_binary.py) * [Decimal To Hexadecimal](conversions/decimal_to_hexadecimal.py) * [Decimal To Octal](conversions/decimal_to_octal.py) + * [Endianness](conversions/endianness.py) * [Energy Conversions](conversions/energy_conversions.py) * [Excel Title To Column](conversions/excel_title_to_column.py) * [Hex To Bin](conversions/hex_to_bin.py) @@ -540,6 +550,7 @@ ## [Geodesy](geodesy) * [Haversine Distance](geodesy/haversine_distance.py) * [Lamberts Ellipsoidal Distance](geodesy/lamberts_ellipsoidal_distance.py) + * [Radar Target Calculation](geodesy/radar_target_calculation.py) ## [Geometry](geometry) * [Geometry](geometry/geometry.py) @@ -689,6 +700,7 @@ * [Astar](machine_learning/astar.py) * [Automatic Differentiation](machine_learning/automatic_differentiation.py) * [Data Transformations](machine_learning/data_transformations.py) + * [Dbscan](machine_learning/dbscan.py) * [Decision Tree](machine_learning/decision_tree.py) * [Dimensionality Reduction](machine_learning/dimensionality_reduction.py) * [Federated Averaging](machine_learning/federated_averaging.py)