{"id":15658416,"url":"https://github.com/qinhanmin2014/tiny-sklearn","last_synced_at":"2025-05-05T16:44:20.654Z","repository":{"id":123466177,"uuid":"179806734","full_name":"qinhanmin2014/tiny-sklearn","owner":"qinhanmin2014","description":"Tiny implementation of important algorithms in scikit-learn. Useful when understanding ML algorithms and scikit-learn.","archived":false,"fork":false,"pushed_at":"2019-11-22T13:57:56.000Z","size":346,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T22:32:04.135Z","etag":null,"topics":["machine-learning","machine-learning-algorithms","scikit-learn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qinhanmin2014.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-06T08:18:31.000Z","updated_at":"2024-04-20T23:52:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"8c0421a6-34d0-49f8-8fc7-03eff710dc4a","html_url":"https://github.com/qinhanmin2014/tiny-sklearn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qinhanmin2014%2Ftiny-sklearn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qinhanmin2014%2Ftiny-sklearn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qinhanmin2014%2Ftiny-sklearn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qinhanmin2014%2Ftiny-sklearn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qinhanmin2014","download_url":"https://codeload.github.com/qinhanmin2014/tiny-sklearn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252535294,"owners_count":21763931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","machine-learning-algorithms","scikit-learn"],"created_at":"2024-10-03T13:12:23.733Z","updated_at":"2025-05-05T16:44:20.637Z","avatar_url":"https://github.com/qinhanmin2014.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tiny-sklearn\n\n## About\n- Tiny implementation of important algorithms in scikit-learn\n(e.g., pure python, no input validation, no speed/memory optimization, do not support sparse matrix and multioutput).\n- Useful when understanding ML algorithms and scikit-learn.\n- Multiple implementations of each algorithm.\n- Roughly follow the structure of scikit-learn.\n- Roughly follow the API standard of scikit-learn.\n- Results are compared with scikit-learn.\n\n## Table of Contents\n- **calibration** (sklearn.calibration)\n  * [calibration_curve](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/calibration/calibration_curve.ipynb)\n  * [CalibratedClassifierCV](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/calibration/CalibratedClassifierCV.ipynb)\n- **cluster** (sklearn.cluster)\n  * [AgglomerativeClustering](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/cluster/AgglomerativeClustering.ipynb)\n  * [DBSCAN](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/cluster/DBSCAN.ipynb)\n  * [KMeans](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/cluster/KMeans.ipynb)\n- **covariance** (sklearn.covariance)\n  * [EmpiricalCovariance](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/covariance/EmpiricalCovariance.ipynb)\n- **decomposition** (sklearn.decomposition)\n  * [KernelPCA](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/decomposition/KernelPCA.ipynb)\n  * [PCA](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/decomposition/PCA.ipynb)\n  * [TruncatedSVD](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/decomposition/TruncatedSVD.ipynb)\n- **discriminant_analysis** (sklearn.discriminant_analysis)\n  * [LinearDiscriminantAnalysis](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/discriminant_analysis/LinearDiscriminantAnalysis.ipynb)\n- **dummy** (sklearn.dummy)\n  * [DummyClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/dummy/DummyClassifier.ipynb)\n  * [DummyRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/dummy/DummyRegressor.ipynb)\n- **ensemble** (sklearn.ensemble)\n  * [AdaBoostClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/AdaBoostClassifier.ipynb)\n  * [AdaBoostRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/AdaBoostRegressor.ipynb)\n  * [BaggingClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/BaggingClassifier.ipynb)\n  * [BaggingRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/BaggingRegressor.ipynb)\n  * [GradientBoostingClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/GradientBoostingClassifier.ipynb)\n  * [GradientBoostingRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/GradientBoostingRegressor.ipynb)\n  * [RandomForestClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/RandomForestClassifier.ipynb)\n  * [RandomForestRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/RandomForestRegressor.ipynb)\n  * [StackingClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/StackingClassifier.ipynb)\n  * [StackingRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/StackingRegressor.ipynb)\n  * [VotingClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/VotingClassifier.ipynb)\n  * [VotingRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/ensemble/VotingRegressor.ipynb)\n- **feature_extraction** (sklearn.feature_extraction)\n  * [CountVectorizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_extraction/CountVectorizer.ipynb)\n  * [TfidfTransformer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_extraction/TfidfTransformer.ipynb)\n  * [TfidfVectorizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_extraction/TfidfVectorizer.ipynb)\n- **feature_selection** (sklearn.feature_selection)\n  * [RFE](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_selection/RFE.ipynb)\n  * [SelectFromModel](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_selection/SelectFromModel.ipynb)\n  * [VarianceThreshold](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/feature_selection/VarianceThreshold.ipynb)\n- **impute** (sklearn.inpute)\n  * [MissingIndicator](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/impute/MissingIndicator.ipynb)\n  * [SimpleImputer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/impute/SimpleImputer.ipynb)\n- **inspection** (sklearn.inspection)\n  * [partial_dependence](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/inspection/partial_dependence.ipynb)\n  * [permutation_importance](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/inspection/permutation_importance.ipynb)\n- **kernel_ridge** (sklearn.kernel_ridge)\n  * [KernelRidge](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/kernel_ridge/KernelRidge.ipynb)\n- **linear_model** (sklearn.linear_model)\n  * [LinearRegression](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/LinearRegression.ipynb)\n  * [LogisticRegression](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/LogisticRegression.ipynb)\n  * [Ridge](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/Ridge.ipynb)\n  * [RidgeClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/RidgeClassifier.ipynb)\n  * [RidgeCV](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/RidgeCV.ipynb)\n  * [SGDClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/SGDClassifier.ipynb) \n  * [SGDRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/linear_model/SGDRegressor.ipynb) \n- **metrics** (sklearn.metrics) - classification metrics\n  * [accuracy_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/accuracy_score.ipynb)\n  * [average_precision_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/average_precision_score.ipynb)\n  * [brier_score_loss](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/brier_score_loss.ipynb)\n  * [confusion_matrix](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/confusion_matrix.ipynb)\n  * [f1_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/f1_score.ipynb)\n  * [fbeta_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/fbeta_score.ipynb)\n  * [multilabel_confusion_matrix](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/multilabel_confusion_matrix.ipynb)\n  * [precision_recall_curve](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/precision_recall_curve.ipynb)\n  * [precision_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/precision_score.ipynb)\n  * [recall_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/recall_score.ipynb)\n  * [roc_auc_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/roc_auc_score.ipynb)\n  * [roc_curve](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/roc_curve.ipynb)\n- **metrics** (sklearn.metrics) - regression metrics\n  * [mean_absolute_error](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/mean_absolute_error.ipynb)\n  * [mean_squared_error](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/mean_squared_error.ipynb)\n  * [median_absolute_error](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/median_absolute_error.ipynb)\n  * [r2_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/r2_score.ipynb)\n- **metrics** (sklearn.metrics) - pairwise metrics\n  * [cosine_distances](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/cosine_distances.ipynb)\n  * [cosine_similarity](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/cosine_similarity.ipynb)\n  * [euclidean_distances](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/euclidean_distances.ipynb)\n  * [linear_kernel](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/linear_kernel.ipynb)\n  * [rbf_kernel](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/metrics/rbf_kernel.ipynb)\n- **mixture** (sklearn.mixture)\n  * [GaussianMixture](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/mixture/GaussianMixture.ipynb)\n- **neighbors** (sklearn.neighbors)\n  * [KNeighborsClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/KNeighborsClassifier.ipynb)\n  * [KNeighborsRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/KNeighborsRegressor.ipynb)\n  * [NearestCentroid](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/NearestCentroid.ipynb)\n  * [NearestNeighbors](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/NearestNeighbors.ipynb)\n  * [RadiusNeighborsClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/RadiusNeighborsClassifier.ipynb)\n  * [RadiusNeighborsRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neighbors/RadiusNeighborsRegressor.ipynb)\n- **model_selection** (sklearn.model_selection) - splitter classes / functions\n  * [KFold](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/KFold.ipynb)\n  * [ShuffleSplit](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/ShuffleSplit.ipynb)\n  * [StratifiedKFold](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/StratifiedKFold.ipynb)\n  * [StratifiedShuffleSplit](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/StratifiedShuffleSplit.ipynb)\n  * [TimeSeriesSplit](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/TimeSeriesSplit.ipynb)\n  * [train_test_split](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/train_test_split.ipynb)\n- **model_selection** (sklearn.model_selection) - hyper-parameter optimizers\n  * [GridSearchCV](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/GridSearchCV.ipynb)\n- **model_selection** (sklearn.model_selection) - model validation\n  * [cross_val_predict](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/cross_val_predict.ipynb)\n  * [cross_val_score](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/cross_val_score.ipynb)\n  * [learning_curve](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/learning_curve.ipynb)\n  * [validation_curve](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/model_selection/validation_curve.ipynb)\n- **multiclass** (sklearn.multiclass)\n  * [OneVsOneClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/multiclass/OneVsOneClassifier.ipynb)\n  * [OneVsRestClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/multiclass/OneVsRestClassifier.ipynb)\n  * [OutputCodeClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/multiclass/OutputCodeClassifier.ipynb)\n- **naive_bayes** (sklearn.naive_bayes)\n  * [BernoulliNB](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/naive_bayes/BernoulliNB.ipynb)\n  * [ComplementNB](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/naive_bayes/ComplementNB.ipynb)\n  * [GaussianNB](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/naive_bayes/GaussianNB.ipynb)\n  * [MultinomialNB](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/naive_bayes/MultinomialNB.ipynb)\n- **neural_network** (sklearn.neural_network)\n  * [MLPClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neural_network/MLPClassifier.ipynb)\n  * [MLPRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/neural_network/MLPRegressor.ipynb)\n- **preprocessing** (sklearn.preprocessing)\n  * [Binarizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/Binarizer.ipynb)\n  * [KBinsDiscretizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/KBinsDiscretizer.ipynb)\n  * [KernelCenterer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/KernelCenterer.ipynb)\n  * [LabelBinarizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/LabelBinarizer.ipynb)\n  * [LabelEncoder](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/LabelEncoder.ipynb)\n  * [MaxAbsScaler](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/MaxAbsScaler.ipynb)\n  * [MinMaxScaler](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/MinMaxScaler.ipynb)\n  * [Normalizer](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/Normalizer.ipynb)\n  * [RobustScaler](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/RobustScaler.ipynb)\n  * [StandardScaler](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/preprocessing/StandardScaler.ipynb)\n- **svm** (sklearn.svm)\n  * [LinearSVC](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/svm/LinearSVC.ipynb)\n  * [SVC](https://nbviewer.jupyter.org/github/qinhanmin2014/Machine-Learning-in-Action/blob/master/06%20Support%20vector%20machines/svmMLiA.ipynb) (difficult to obtain similar results compared with LIBSVM/ scikit-learn)\n- **tree** (sklearn.tree)\n  * [DecisionTreeClassifier](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/tree/DecisionTreeClassifier.ipynb)\n  * [DecisionTreeRegressor](https://nbviewer.jupyter.org/github/qinhanmin2014/tiny-sklearn/blob/master/tree/DecisionTreeRegressor.ipynb)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqinhanmin2014%2Ftiny-sklearn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqinhanmin2014%2Ftiny-sklearn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqinhanmin2014%2Ftiny-sklearn/lists"}