algoroots
105 subscribers
5 photos
2 videos
5 files
6 links
جایی برای تقویت ذهن الگوریتمی با
الگوریتم های کاربردی در حوزه های جذاب
Download Telegram
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…
◼️برای هر نمونه از حلقه های for تو در تو نباید استفاده شه
◽️راهکار جایگزین بردارسازی با نامپای هست

◽️برای تصادفی نشدن نتایج در کلاس ها با رأی برابر شرطی کردن روش خوبی است
بخصوص بررسی میانگین

◽️معیار 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
ساختار این الگوریتم برای یافتن بیشینه ی تابع درجه دوم #python
جایگزین کردن numpy.array به جای str ها برای بهینه کردن سرعت

اگر تابع fitness سنگین باشد باید از memorization استفاده
ارزیابی مکرر پرهزینه است

طراحی کلاس برای کروموزوم بسیار مناسب است(OOP)

اگر نرخ جهش بالا باشد
الگوریتم شبیه جستجوی تصادفی می‌شود

نداشتن تنوع در جمعیت موجب گیرافتادن در بهینه ی محلی می‌شود(مهم)

رعایت این نکات الگوریتم را بسیار بهینه میکند
1🤔1
def is_prime(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True

def next_prime(n):
candidate = n + 1
while not is_prime(candidate):
candidate += 1
return candidate

def sum_with_next_prime(num):
if is_prime(num):
next = next_prime(num)
result =num +next
print(f"{num} is a prime Sum with the next prime {next} is: {result}")
else:
print(f"{num} is not a prime")

number=int(input("Enter a number: "))
sum_with_next_prime(number)
2🔥1
algoroots
def is_prime(n): if n <= 1: return False if n <= 3: return True if n % 2 == 0 or n % 3 == 0: return False i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6…
#python
الگوریتمی جالب
عدد را دریافت و اگر اول بود آن را با عدد اول بعدی اش جمع میکند
🔥21
عدم پشتیبانی از اعداد بزرگ در این الگوریتم ها به چشم میخورد
که برای پیاده سازی های بزرگ مشکل است
1👍1🤔1
algoroots
def is_prime(n): if n <= 1: return False if n <= 3: return True if n % 2 == 0 or n % 3 == 0: return False i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6…
◽️برای کار با اعداد اول
استفاده از غربال اراتستن راهکار بهینه ای است

◽️کتابخانه ی sympy راهکار خوبی برای کار با اعداد صحیح است و آزادی عمل خوبی برای کار با اعداد بزرگ می‌دهد
1
algoroots
◽️برای کار با اعداد اول استفاده از غربال اراتستن راهکار بهینه ای است ◽️کتابخانه ی sympy راهکار خوبی برای کار با اعداد صحیح است و آزادی عمل خوبی برای کار با اعداد بزرگ می‌دهد
import math

def sieve_of_eratosthenes(n):
is_prime=[True] *(n + 1)
is_prime[0]=False
is_prime[1] = False

for p in range(2, int(math.sqrt(n)) + 1):
if is_prime[p]:
for multiple in range(p * p, n + 1, p):
is_prime[multiple]=False

primes= [ ]
for i in range(2,n + 1):
if is_prime[i]:
primes.append(i)

return primes

n = int(input("Find all prime numbers up to: "))
primes = sieve_of_eratosthenes(n)
print(f"Prime numbers up to {n} are:")
print(primes)
4
algoroots
#python ساختار الگوریتم غربال اراتستن
نوشتن این الگوریتم با bitrray به صرفه تر است
3🔥1
هک کردن شبکه عصبی! یا حداقل تلاش برای انجام آن.
یک شبیه‌ساز عالی منتشر شده که در آن باید هوش مصنوعی را قانع کنید تا رمز عبور را بدهد.

باید زیرکی به خرج دهید و پرامتی پیدا کنید که بتواند محافظت چت‌بات را دور بزند
https://gandalf.lakera.ai/baseline

اسپویل:
پاسخ مرحله ی اول در تصویر هست.
7
def quick_sort(arr):
if len(arr)<=1:
return arr

pivot = arr[0]
smaller =[x for x in arr[1:] if x < pivot]
greater_or_equal= [x for x in arr[1:] if x >= pivot]

return quick_sort(smaller) + [pivot] + quick_sort(greater_or_equal)
5
This media is not supported in your browser
VIEW IN TELEGRAM
◽️◽️قدرت انویدیا در جدیدترین مدل تشخیص گفتاری

رونمایی از مدل : Parakeet TDT 0.6B

🔥سریع و دقیق و قابل استفاده برای پروژه های تجاری

🔥مدلی که یک صوت یک ساعته رو کمتر از یک ثانیه به متن تبدیل می‌کنه

🔥با دارا بودن ۶۰۰ میلیون پارامتر قوی ترین مدل گفتاری

🔥با قابلیت لایسنس باز و تجاری
میتونی هر جایی استفادش کنی

https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
2🙏2🔥1
قاعده کلی پرامپت gpt 5
         

تکنیکای گرفتن خروجی:


◽️نقش و مرزبندی

بگو به مدل که چه نقشی داری
باید چیکار کنی
و چه چیزایی رو وارد نشی
محدوده واسش بزار

◽️پیش زمینه

در ابتدا به پیش زمینه بگو
قانون گذاری کن
و بگو چه وظایفی باید انجام بده

                  

◽️دستور کلیدی

دستورای کلیدی در جملات آخر بزار
                  
◽️ بررسی زنجیره وار

بگو مرحله مرحله فک کنه و در هر مرحله نتایج مراحل قبل رو درنظر بگیره و چک کنه
                  

◽️دو مرحله پاسخ

یه پاسخ اولیه بگیر به عنوان پیش نویس
بعدش ازش درخواست کن اصلاحات دقیق رو انجام بده
یا اگه چیزی مونده خودت اصلاح کن

                  

◽️اجازه نه گفتن

اگه چیزی رو نفهمید یا نمیدونه بهش اجازه بده بگه نمی‌دونم
اینطور از داده های غیرواقعی جلوگیری می‌کنی

                  

◽️تغییر زاویه

بگو مسئله رو از چند دید ببین و بهترینارو با هم ترکیب کن و بگو

                  
◽️جداکننده

قوانین در تگهای Xml و ،`` بهش بگو

                  

◽️نمونه

دو سه تا مثال خوب بزن بفهمه قبل از هر درخواستی


این یه ارتقای بزرگ از جی پی تی ۴ هست

🔥که کمترین اشتباه رو فعلا در کارهای پیچیده داره
🔥می‌تونه استدلال سطحی و عمیق رو انجام بده و بهترین حالت رو بگه
🔥مکالمات طولانی رو ادامه میده
🔥برای کارای چند استپی پایداری و نقشه های بهتری میریزه
🔥در حوزه حقوق مهندسی پزشکی دانشش بیشتر از قبله
🔥و کیفیت کدنویسیش بهتر شده


https://cookbook.openai.com/examples/gpt-5/gpt-5_prompting_guide
🔥21
@MachineLearning_ir - Choosing Algorithm in ML.pdf
141 KB
راهنمایی برای انتخاب بهترین الگوریتم ML

#Ml
1
algoroots
@MachineLearning_ir - Choosing Algorithm in ML.pdf
دسته بندی الگوریتم های ماشین لرنینگ :

یادگیری با نظارت :

رگرسیون خطی
رگرسیون لجستیک
درخت تصمیم
جنگل تصادفی
ماشین بردار پشتیبان (SVM)
نزدیک ترین همسایه (KNN)

یادگیری بدون نظارت :

دسته بندی k-means
خوشه بندی سراسری(hierarchical)
خوشه بندی بر اساس چگالی(DBSCAN)
کاهش ابعاد(PCA)
کاهش ابعاد غیرخطی(UMAP)
کاهش ابعاد ویژگی ها(Autoencoder)

یادگیری نیمه نظارتی :

Self-training

Label Propagation / Label Spreading

Semi-Supervised SVM

یادگیری تقویتی:

Q-Learning

Deep Q-Network (DQN)

Policy Gradient Methods REINFORCE

Actor-Critic A3C/ PPO

یادگیری عمیق :

شبکه عصبی پایه(MLP , FNN)
شبکه عصبی کانولوشن(CNN)
شبکه عصبی بازگشتی(RNN)
مدل مبتنی بر توجه :
Transformer

BERT/RoBERTa

GPT
مدل های مولد :
Autoencoders

Variational Autoencoders (VAE)

Generative Adversarial Networks (GANs)

معماری های پیشرفته :
Capsule Networks

Graph Neural Networks (GNN)

Neural ODEs


#ML
2🤔1