import random
from math import gcd
def modinv(a, m):
for x in range(1, m):
if (a * x) % m == 1:
return x
raise Exception('Modular inverse does not exist.')
def generate_keys():
p = 17
q = 23
n = p * q
phi = (p - 1) * (q - 1)
e = 3
while gcd(e, phi) != 1:
e += 2
d = modinv(e, phi)
return (e, n), (d, n)
def encrypt(public_key, plaintext):
e, n = public_key
return [pow(ord(char), e, n) for char in plaintext]
def decrypt(private_key, ciphertext):
d, n = private_key
return ''.join([chr(pow(char, d, n)) for char in ciphertext])
public, private = generate_keys()
message = "Hi"
cipher = encrypt(public, message)
decrypted = decrypt(private, cipher)
print("Public key:", public)
print("Private key:", private)
print("Original:", message)
print("Encrypted:", cipher)
print("Decrypted:", decrypted)
❤2
💰برنامه نویسی بلاک چین با پایتون :
1. یادگیری مفاهیم پایه بلاکچین
بلاک و زنجیره بلاکها
هشینگ (SHA-256)
بلاک Genesis
اثبات کار (Proof of Work)
2. تعریف ساختار بلاک
مشخص کردن فیلدهای بلاک (index, timestamp, data, previous_hash, hash, nonce)
3. ایجاد کلاس بلاکچین
ساخت بلاک Genesis
افزودن تابع محاسبه هش بلاک
افزودن تابع اضافه کردن بلاک جدید
4. پیادهسازی اثبات کار (Proof of Work)
ایجاد تابع ماینینگ با شرط هش (مثلاً شروع با چند صفر)
#Blockchain
1. یادگیری مفاهیم پایه بلاکچین
بلاک و زنجیره بلاکها
هشینگ (SHA-256)
بلاک Genesis
اثبات کار (Proof of Work)
2. تعریف ساختار بلاک
مشخص کردن فیلدهای بلاک (index, timestamp, data, previous_hash, hash, nonce)
3. ایجاد کلاس بلاکچین
ساخت بلاک Genesis
افزودن تابع محاسبه هش بلاک
افزودن تابع اضافه کردن بلاک جدید
4. پیادهسازی اثبات کار (Proof of Work)
ایجاد تابع ماینینگ با شرط هش (مثلاً شروع با چند صفر)
#Blockchain
❤2
انواع رگرسیون در machine learning :
1. رگرسیون خطی ساده
◽️رابطه خطی بین یک متغیر مستقل و یک متغیر وابسته
2. رگرسیون خطی چندگانه (Multiple Linear)
◽️چند متغیر مستقل برای پیشبینی یک خروجی
3. رگرسیون پلینومیال (Polynomial)
◽️مدلسازی رابطههای غیرخطی با توانهای بالاتر
4. رگرسیون لجستیک (Logistic)
◽️برای دستهبندی (خروجی بین 0 و 1)، نه مقدار عددی
5. رگرسیون Ridge
◽️رگرسیون با جریمه L2 برای کاهش پیچیدگی مدل
6. رگرسیون Lasso
◽️رگرسیون با جریمه L1 ویژگیهای بیاثر را حذف میکند
7. رگرسیون لگاریتمی
◽️مناسب دادههای دارای رشد یا افت سریع
8. رگرسیون Quantile (صدکی)
◽️پیشبینی میانه یا صدکهای خاص داده
9. رگرسیون Stepwise (گامبهگام)
◽️افزودن یا حذف خودکار ویژگیها برای سادهسازی مدل
#ML
1. رگرسیون خطی ساده
◽️رابطه خطی بین یک متغیر مستقل و یک متغیر وابسته
2. رگرسیون خطی چندگانه (Multiple Linear)
◽️چند متغیر مستقل برای پیشبینی یک خروجی
3. رگرسیون پلینومیال (Polynomial)
◽️مدلسازی رابطههای غیرخطی با توانهای بالاتر
4. رگرسیون لجستیک (Logistic)
◽️برای دستهبندی (خروجی بین 0 و 1)، نه مقدار عددی
5. رگرسیون Ridge
◽️رگرسیون با جریمه L2 برای کاهش پیچیدگی مدل
6. رگرسیون Lasso
◽️رگرسیون با جریمه L1 ویژگیهای بیاثر را حذف میکند
7. رگرسیون لگاریتمی
◽️مناسب دادههای دارای رشد یا افت سریع
8. رگرسیون Quantile (صدکی)
◽️پیشبینی میانه یا صدکهای خاص داده
9. رگرسیون Stepwise (گامبهگام)
◽️افزودن یا حذف خودکار ویژگیها برای سادهسازی مدل
#ML
❤3🔥2
algoroots
انواع رگرسیون در machine learning : 1. رگرسیون خطی ساده ◽️رابطه خطی بین یک متغیر مستقل و یک متغیر وابسته 2. رگرسیون خطی چندگانه (Multiple Linear) ◽️چند متغیر مستقل برای پیشبینی یک خروجی 3. رگرسیون پلینومیال (Polynomial) ◽️مدلسازی رابطههای غیرخطی…
❗️استفاده از این الگوریتم ها در کارهای آماری نیز مرسوم است !
❤2
@MachineLearning_ir - Interactive Linear Algebra.pdf
4.4 MB
کتابی مناسب برای یادگیری بصری جبرخطی
از : Dan Margalit و Joseph D. Rabinoff
از : Dan Margalit و Joseph D. Rabinoff
❤3
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