utelearn
utelearn is a custom machine learning library built from scratch for educational purposes at UTE.
Installation
You can install the package directly from PyPI:
pip install utelearn
Features
- KMeans Clustering: Custom implementation of the KMeans clustering algorithm using NumPy.
- Built-in support for data visualization with Matplotlib.
Quick Start
Here is a quick example of how to use the KMeans & KNN model from utelearn:
import numpy as np
import matplotlib.pyplot as plt
from utelearn.kmeans import KMeans
# 1. Tạo dữ liệu mẫu ngẫu nhiên (2 cụm rõ rệt)
np.random.seed(42)
X = np.vstack([
np.random.randn(50, 2) + np.array([2, 2]),
np.random.randn(50, 2) + np.array([-2, -2])
])
# 2. Khởi tạo và huấn luyện mô hình K-Means với k=2
kmeans = KMeans(k=2, max_iters=100)
kmeans.fit(X)
# 3. In kết quả trung tâm cụm (centroids)
print("Tọa độ các tâm cụm (Centroids):")
print(kmeans.centroids)
# 4. Dự đoán nhãn cho các điểm dữ liệu (nếu lớp KMeans có hàm predict)
# Hoặc gán nhãn dựa vào khoảng cách gần nhất tới các centroids
labels = np.argmin([np.linalg.norm(X - c, axis=1) for c in kmeans.centroids], axis=0)
# 5. Vẽ biểu đồ trực quan
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', marker='o', alpha=0.7, edgecolors='k', label='Dữ liệu mẫu')
plt.scatter(kmeans.centroids[:, 0], kmeans.centroids[:, 1], c='red', marker='X', s=250, edgecolors='k', label='Tâm cụm (Centroids)')
plt.title("Trực quan hóa thuật toán K-Means - Utelearn", fontsize=14)
plt.xlabel("Trục X", fontsize=12)
plt.ylabel("Trục Y", fontsize=12)
plt.legend()
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()
K-Nearest Neighbors (KNN)
1. KNN Regression & Classification Example
import numpy as np
from utelearn import knn
# Generate synthetic training data
X_train = np.random.rand(100, 1)
y_train = 4 * X_train**2 + 3 * X_train + 2 + np.random.randn(100, 1) * 0.1
# Generate test points
X_test = np.linspace(0, 1, 10).reshape(-1, 1)
# Perform KNN regression with k=5
predictions = knn.knn_regression(X_train, y_train, X_test, k=5)
print("Regression Predictions:", predictions)
# Generate synthetic training and test features/labels
X_train = np.random.rand(100, 2)
y_train = np.random.randint(0, 3, size=100) # 3 classes
X_test = np.random.rand(10, 2)
# Perform KNN classification with k=5
predictions = knn.knn_classify(X_train, y_train, X_test, k=5, n_classes=3)
print("Classification Predictions:", predictions)
## Author
- **Dung Cai** (dung.cai@hcmute.edu.vn)
Metadata
Release files for utelearn 10.1.2026
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| utelearn-10.1.2026.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| utelearn-10.1.2026-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.7 kB
Release files / utelearn-10.1.2026.tar.gz
| Download URL | utelearn-10.1.2026.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1049750e0750a3b7737c753d2ef4edec82d1c2d04c7195e5f070a5bdb56b1a89
|
|
BLAKE2b-256 checksum How to use checksums |
0159ef83da7d408602b2a3991af43d8d6d0aeca3a986b61988c394b2d4d23767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.4
|
Release files / utelearn-10.1.2026-py3-none-any.whl
| Download URL | utelearn-10.1.2026-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5dce963b74e6ba950f70caeeeb6f0c6fd22a6d855afd7864b6ac17bd5c53ae41
|
|
BLAKE2b-256 checksum How to use checksums |
7d45c86366b6c00d9e652a667a98e6f97226479853dbb99f9c3882cf9f962faf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.4
|