algoroots
@MachineLearning_ir - Interactive Linear Algebra.pdf
📚پایه ای بسیار مهم برای فهم و توسعه ی مدل های یادگیری ماشین
#Ml
#Ml
❤2
@MachineLearning_ir - ML with Python Cookbook.pdf
1.8 MB
کتاب یادگیری ماشین با پایتون
از : Chris Albon
از : Chris Albon
❤4
🤔رمزنگاری هش:
یک تکنیک که یک ورودی با اندازه دلخواه را به
یک خروجی با اندازه ی ثابت تبدیل میکند
و خروجی را به اصطلاح هش مینامند!
یک الگوریتم بسیار حساس به تغییر و مقاوم
کاربرد ها :
ذخیره ی امن پسورد
امضای دیجیتال
بلاک چین
یک تکنیک که یک ورودی با اندازه دلخواه را به
یک خروجی با اندازه ی ثابت تبدیل میکند
و خروجی را به اصطلاح هش مینامند!
یک الگوریتم بسیار حساس به تغییر و مقاوم
کاربرد ها :
ذخیره ی امن پسورد
امضای دیجیتال
بلاک چین
❤2👎1
algoroots
🤔رمزنگاری هش: یک تکنیک که یک ورودی با اندازه دلخواه را به یک خروجی با اندازه ی ثابت تبدیل میکند و خروجی را به اصطلاح هش مینامند! یک الگوریتم بسیار حساس به تغییر و مقاوم کاربرد ها : ذخیره ی امن پسورد امضای دیجیتال بلاک چین
import hashlib
data ="Hello,world!".encode()
hash_value = hashlib.sha256(data).hexdigest()
print("SHA-256 Hash:", hash_value)
❤1👍1👎1
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report
iris=load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
y_pred=model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
print("\nClassification Report:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))
❤2
Chip_Huyen_Designing_Machine_Learning_Systems_An_Iterative_Process.pdf
15.5 MB
کتابی برای پیاده سازی سیستم های ماشین لرنینگ به صورت واقعی و عملی
#Ml
#Ml
❤3
🤔الگوریتم k-means
یک الگوریتم کلاسیک و مهم در یادگیریه بدون نظارت که در خوشه بندی استفاده میشود.
این الگوریتم مجموعه ای از نقاط داده را به K خوشه مجزا تقسیم میکند :
به صورتی که نقاط داخل هر خوشه بیشترین همسایگی را با هم داشته باشند و نقاط مختلف هر خوشه بیشترین تفاوت را با هم.
مسئله ریاضی پشت این الگوریتم کمینه کردن مجموع مربع فاصله داده ها از مرکز است.
#ML
یک الگوریتم کلاسیک و مهم در یادگیریه بدون نظارت که در خوشه بندی استفاده میشود.
این الگوریتم مجموعه ای از نقاط داده را به K خوشه مجزا تقسیم میکند :
به صورتی که نقاط داخل هر خوشه بیشترین همسایگی را با هم داشته باشند و نقاط مختلف هر خوشه بیشترین تفاوت را با هم.
مسئله ریاضی پشت این الگوریتم کمینه کردن مجموع مربع فاصله داده ها از مرکز است.
#ML
👍4❤1
import numpy as np
def initialize_centroids(X, k):
indices = np.random.choice(len(X), size=k, replace=False)
return X[indices]
def assign_clusters(X,centroids):
distances = np.linalg.norm(X[:, np.newaxis] -centroids, axis=2)
return np.argmin(distances, axis=1)
def update_centroids(X, labels, k):
return np.array([X[labels== i].mean(axis=0) for i in range(k)])
def has_converged(old_centroids, new_centroids, tolerance=1e-4):
shifts = np.linalg.norm(new_centroids - old_centroids, axis=1)
return np.all(shifts < tolerance)
def kmeans(X, k, max_iterations=100):
centroids=initialize_centroids(X, k)
for _ in range(max_iterations):
labels = assign_clusters(X, centroids)
new_centroids = update_centroids(X, labels, k)
if has_converged(centroids, new_centroids):
break
centroids=new_centroids
return centroids, labels
❤1
import numpy as np
from collections import Counter
def euclidean_distance(a, b):
return np.sqrt(np.sum((a-b) ** 2))
class KNN:
def __init__(self, k=3):
self.k = k
def fit(self, X, y):
self.X_train = X
self.y_train = y
def predict(self, X):
return [self._predict(x) for x in X]
def _predict(self, x):
distances = [euclidean_distance(x, x_train) for x_train in self.X_train]
k_indics = np.argsort(distances)[:self.k]
k_nearest_labels = [self.y_train[i] for i in k_indics]
most_common = Counter(k_nearest_labels).most_common(1)
return most_common[0][0]
❤1
algoroots
import numpy as np from collections import Counter def euclidean_distance(a, b): return np.sqrt(np.sum((a-b) ** 2)) class KNN: def __init__(self, k=3): self.k = k def fit(self, X, y): self.X_train = X self.y_train = y…
ساختار الگوریتم KNN مهم و کاربردی برای مسائل دسته بندی و رگرسیون
#ML
#ML
❤1👍1
algoroots
import numpy as np from collections import Counter def euclidean_distance(a, b): return np.sqrt(np.sum((a-b) ** 2)) class KNN: def __init__(self, k=3): self.k = k def fit(self, X, y): self.X_train = X self.y_train = y…
◼️برای هر نمونه از حلقه های for تو در تو نباید استفاده شه
◽️راهکار جایگزین بردارسازی با نامپای هست
◽️برای تصادفی نشدن نتایج در کلاس ها با رأی برابر شرطی کردن روش خوبی است
بخصوص بررسی میانگین
◽️معیار F1_score حتما در کنار سه معیار شاخص بررسی شود
◽️مقدار خیلی کوچک K باعث نویز میشود
و بزرگ آن دقت را کم میکند
بهینه سازی با Cross_validatiam راهکار خوبی است
رعایت این نکات الگوریتم را بسیار بهینه میکند .
#ML
#python
◽️راهکار جایگزین بردارسازی با نامپای هست
◽️برای تصادفی نشدن نتایج در کلاس ها با رأی برابر شرطی کردن روش خوبی است
بخصوص بررسی میانگین
◽️معیار F1_score حتما در کنار سه معیار شاخص بررسی شود
◽️مقدار خیلی کوچک K باعث نویز میشود
و بزرگ آن دقت را کم میکند
بهینه سازی با Cross_validatiam راهکار خوبی است
رعایت این نکات الگوریتم را بسیار بهینه میکند .
#ML
#python
❤1👍1
الگوریتم ژنتیک(GA) :
الگوریتمی برای جست و جوی تصادفی با استفاده از تکامل زیستی
عملکرد کلی :
◽️جمعیت اولیه:
از پاسخ های تصادفی به نام کروموزوم ها استفاده میکنیم
◽️ارزیابی:
با استفاده از یک تابع هدف کیفیت هر کروموزوم سنجیده میشود
◽️انتخاب :
کروموزوم های بهتر با احتمال بیشتر برای تولید مثل انتخاب میشوند
◽️کراس اور :
ترکیب دو کروموزوم برای تولید فرزندان جدید
◽️جهش :
برای جلوگیری از گیرافتادن در مینیمم های محلی به طور تصادفی ژن ها در کروموزوم ها تغییر میکنند
◽️تکامل نسل :
تکرار مراحل تا به یک شرط توقف یا جواب بهینه برسیم
ویژگی :
عملکرد قوی در فضاهای پیچیده
مناسب برای مسائل غیرخطی و پیچیده
الگوریتمی برای جست و جوی تصادفی با استفاده از تکامل زیستی
عملکرد کلی :
◽️جمعیت اولیه:
از پاسخ های تصادفی به نام کروموزوم ها استفاده میکنیم
◽️ارزیابی:
با استفاده از یک تابع هدف کیفیت هر کروموزوم سنجیده میشود
◽️انتخاب :
کروموزوم های بهتر با احتمال بیشتر برای تولید مثل انتخاب میشوند
◽️کراس اور :
ترکیب دو کروموزوم برای تولید فرزندان جدید
◽️جهش :
برای جلوگیری از گیرافتادن در مینیمم های محلی به طور تصادفی ژن ها در کروموزوم ها تغییر میکنند
◽️تکامل نسل :
تکرار مراحل تا به یک شرط توقف یا جواب بهینه برسیم
ویژگی :
عملکرد قوی در فضاهای پیچیده
مناسب برای مسائل غیرخطی و پیچیده
❤1🔥1
import random
def fitness(x):
return x**2
def decode(chromosome, a, b, bits):
value =int(chromosome, 2)
return a + (b - a) * value / (2**bits - 1)
def random_chromosome(bits):
return ''.join(random.choice('01') for_in range(bits))
def selection(population, scores):
k = 3
selected = random.choices(list(zip(population, scores)), k=k)
selected.sort(key=lambda x: x[1], reverse=True)
return selected[0][0]
def crossover(p1, p2, rate=0.7):
if random.random() < rate:
point = random.randint(1, len(p1) - 1)
return p1[:point] + p2[point:], p2[:point] + p1[point:]
return p1, p2
def mutate(chromosome, rate=0.01):
return ''.join(
bit if random.random() > rate else ('1' if bit == '0' else '0')
for bit in chromosome
)
bits = 10
bounds = (-10, 10)
population_size = 20
generations = 50
population = [random_chromosome(bits) for _ in range(population_size)]
for gen in range(generations):
decoded = [decode(c, *bounds, bits) for c in population]
scores=[fitness(d) for d in decoded]
best_idx = scores.index(max(scores))
print(f"{gen}: x = {decoded[best_idx]:.3f}, f(x) = {scores[best_idx]:.3f}")
select = [selection(population, scores) for _ in range(population_size)]
children = [ ]
for i in range(0, population_size, 2):
p1, p2 = select[i], select[i+1]
c1, c2 =crossover(p1, p2)
c1, c2 =mutate(c1), mutate(c2)
children.extend([c1, c2])
population = children
❤2
algoroots
import random def fitness(x): return x**2 def decode(chromosome, a, b, bits): value =int(chromosome, 2) return a + (b - a) * value / (2**bits - 1) def random_chromosome(bits): return ''.join(random.choice('01') for_in range(bits)) def…
ساختار این الگوریتم برای یافتن بیشینه ی تابع درجه دوم
#python
#python
❤1