Metadata-Version: 2.1
Name: cc-mini-scikit-learn
Version: 1.0.1
Summary: A mini implementation of Scikit-Learn with custom models and metrics
Home-page: UNKNOWN
Author: basma-arnaoui
Author-email: basma.arnaoui@um6p.ma
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown

Here's a comprehensive README file for your project:

```markdown
# CC-Mini-Scikit-Learn

## Overview

CC-Mini-Scikit-Learn is a mini implementation of Scikit-Learn that provides custom models and metrics for machine learning tasks. This package includes various classification, regression, ensemble, and preprocessing algorithms, along with utilities and custom metrics for model evaluation.

## Features

- Custom implementation of various machine learning algorithms
- Custom metrics for model evaluation
- Grid search and cross-validation tools
- Preprocessing tools for data transformation
- Published as a PyPI package for easy installation and use

## Table of Contents

1. [Installation](#installation)
2. [Usage](#usage)
3. [Project Structure](#project-structure)
4. [Implemented Modules](#implemented-modules)
5. [Examples](#examples)
6. [Contributing](#contributing)
7. [License](#license)

## Installation

You can install CC-Mini-Scikit-Learn via pip:

```bash
pip install cc-mini-scikit-learn
```

## Usage

Here is an example of how to use CC-Mini-Scikit-Learn:

```python
from cc_mini_scikit_learn.supervised_learning.classification import KNNClassifier
from cc_mini_scikit_learn.metrics import Accuracy
import numpy as np

# Sample data
X_train = np.array([[1, 2], [2, 3], [3, 4], [4, 5]])
y_train = np.array([0, 1, 0, 1])
X_test = np.array([[1, 2], [2, 3]])

# Initialize and train the classifier
knn = KNNClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Make predictions
predictions = knn.predict(X_test)

# Evaluate the model
accuracy = Accuracy()
print("Accuracy:", accuracy(y_train, predictions))

## Implemented Modules

### Ensemble
- **AdaBoost:** Implementation of the AdaBoost algorithm.
- **GradientBoostingClassifier:** Implementation of Gradient Boosting for classification.
- **RandomForestClassifier:** Implementation of Random Forest for classification.
- **RandomForestRegressor:** Implementation of Random Forest for regression.

### Metrics
- **Accuracy:** Compute the accuracy of predictions.
- **ConfusionMatrix:** Compute the confusion matrix for classification results.
- **F1Score:** Compute the F1 score for classification results.
- **MeanAbsoluteError:** Compute the mean absolute error for regression results.
- **MeanSquaredError:** Compute the mean squared error for regression results.
- **Precision:** Compute the precision score for classification results.
- **Recall:** Compute the recall score for classification results.
- **RootMeanSquaredError:** Compute the root mean squared error for regression results.

### Model Selection
- **GridSearchCV:** Perform grid search cross-validation.
- **KFold:** Implement k-fold cross-validation.
- **ParameterGrid:** Generate parameter grid for grid search.
- **train_test_split:** Split data into train and test sets.

### Neural Networks
- **MLP:** Multi-Layer Perceptron for classification tasks.
- **MLPRegressor:** Multi-Layer Perceptron for regression tasks.
- **Perceptron:** Basic Perceptron classifier.

### Preprocessing
- **LabelEncoder:** Encode target labels with value between 0 and n_classes-1.
- **MinMaxScaler:** Scale features to a given range, usually [0, 1].
- **OneHotEncoder:** Encode categorical integer features as a one-hot numeric array.
- **SimpleImputer:** Impute missing values using a specified strategy.
- **StandardScaler:** Standardize features by removing the mean and scaling to unit variance.

### Supervised Learning
- **BaseEstimator:** Base class for all estimators.
- **classification**
  - **DecisionTreeClassifier:** Decision Tree for classification tasks.
  - **KNNClassifier:** k-Nearest Neighbors classifier.
  - **LogisticRegression:** Logistic Regression classifier.
  - **NaiveBayes:** Naive Bayes classifier.
  - **SVM:** Support Vector Machine classifier.
- **regression**
  - **DecisionTreeRegressor:** Decision Tree for regression tasks.

### Utilities
- Placeholder for utility functions and classes.

## Examples

Refer to the `tests` directory for examples of how to use the various models and metrics provided in this package.



