Skip to content

8. Machine Learning — مشین لرننگ

Difficulty: Advanced — اعلیٰ
Time: ~40 minutes


Importing — درآمد

درآمد {
    نمپائی, پانڈاز,
    درجہ_بندی, ریگریشن, ڈیٹا,
    ترتیبی_ماڈل, گھنی, اخراج,
    بڑا_لسانی_ماڈل
} سے "اردو/ذہین";

اردو: درجہ_بندی اور ریگریشن کے لیے pip install scikit-learn۔ نیورل نیٹ ورک کے لیے pip install tensorflow۔ LLM کے لیے pip install llama-cpp-python۔


NumPy — نمپائی

Numerical arrays and math operations:

متغیر نپ = نیا نمپائی();

// Create arrays
متغیر ا = نپ.سرنی([1, 2, 3, 4, 5]);
متغیر صفر_م = نپ.صفر([3, 3]);           // 3×3 zeros
متغیر ایک_م = نپ.ایک([2, 4]);            // 2×4 ones
متغیر حد_م = نپ.ترتیب(0, 10, 2);        // [0, 2, 4, 6, 8]

// Statistics
لکھو(نپ.مجموع(ا));      // 15.0
لکھو(نپ.اوسط(ا));      // 3.0
لکھو(نپ.زیادہ(ا));     // 5.0
لکھو(نپ.کم(ا));        // 1.0

// Math
لکھو(نپ.لاگ(ا));       // natural log element-wise
لکھو(نپ.مطلق(نپ.سرنی([-1, -2, 3])));

// Linear algebra
متغیر v1 = نپ.سرنی([1, 2, 3]);
متغیر v2 = نپ.سرنی([4, 5, 6]);
لکھو(نپ.جوڑ(v1, v2));  // dot product: 32.0

// Reshape
متغیر فلیٹ = نپ.ترتیب(0, 9);
متغیر گرڈ = نپ.شکل_بدلو(فلیٹ, [3, 3]);
Method Description
.سرنی(data) Create array from list
.صفر(shape) Zeros array
.ایک(shape) Ones array
.ترتیب(start, stop, step) Range array
.شکل_بدلو(a, shape) Reshape
.مجموع(a) Sum
.اوسط(a) Mean
.زیادہ(a) Max
.کم(a) Min
.جوڑ(a, b) Dot product
.لاگ(a) Natural log
.مطلق(a) Absolute value

Pandas — پانڈاز

Tabular data (DataFrames):

متغیر پڈ = نیا پانڈاز();

// Create DataFrame
متغیر جدول_م = پڈ.جدول({
    نام:   ["احمد", "فاطمہ", "علی"],
    نمبر: [85, 92, 78],
    شہر:  ["کراچی", "لاہور", "کراچی"]
});
لکھو(لمبائی(جدول_م));    // 3

// Access columns (standard Pandas notation)
لکھو(جدول_م["نمبر"].mean());
لکھو(جدول_م["نمبر"].max());

// Filter rows
متغیر اچھے = جدول_م[جدول_م["نمبر"] > 80];
لکھو(لمبائی(اچھے));    // 2

// Read/write CSV
متغیر ڈیٹا_م = پڈ.csv_پڑھو("طلباء.csv");
پڈ.csv_لکھو(جدول_م, "نتیجہ.csv");

// Series
متغیر سیریز_م = پڈ.سیریز([10, 20, 30], نام="اسکور");

// Merge
متغیر ملاپ_م = پڈ.ملاؤ(جدول_م, سیریز_م.to_frame(), on="نام");
Method Description
.جدول(dict, ستون) Create DataFrame
.csv_پڑھو(path) Read CSV
.csv_لکھو(df, path) Write CSV
.excel_پڑھو(path) Read Excel
.excel_لکھو(df, path) Write Excel
.ملاؤ(left, right) Merge DataFrames
.سیریز(data, نام) Create Series

Data Preprocessing — ڈیٹا تیاری

متغیر X = [[1, 2], [3, 4], [5, 6], [7, 8]];
متغیر y = [0, 0, 1, 1];

// Train/test split — تقسیم (returns a list of 4 arrays)
متغیر تقسیم_م = ڈیٹا.تقسیم(X, y, جانچ=0.25, بیج=42);
متغیر X_ٹریننگ = تقسیم_م[0];    // training features
متغیر X_جانچ   = تقسیم_م[1];    // test features
متغیر y_ٹریننگ = تقسیم_م[2];    // training labels
متغیر y_جانچ   = تقسیم_م[3];    // test labels

// Normalise (zero mean, unit variance)
متغیر X_معمول = ڈیٹا.معمول(X);

// One-hot encode labels
متغیر y_کوڈ = ڈیٹا.بائنری(["بلی", "کتا", "بلی", "کتا"]);

// Read CSV as matrix
متغیر df = ڈیٹا.پڑھو_csv("ڈیٹا.csv");

اردو: ڈیٹا.تقسیم() چار فہرستیں واپس کرتا ہے [X_ٹریننگ, X_جانچ, y_ٹریننگ, y_جانچ] — انڈیکس سے حاصل کریں۔


Classification — درجہ بندی

Predict a category from features using scikit-learn:

متغیر X = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]];
متغیر y = [0, 0, 0, 1, 1, 1];

متغیر درجہ_بند = نیا درجہ_بندی("جنگل");    // random forest
درجہ_بند.سیکھیں(X, y);

متغیر پیش_گوئی_م = درجہ_بند.پیش_گوئی([[2, 3], [10, 11]]);
لکھو(پیش_گوئی_م[0]);    // 0 (class 0)
لکھو(پیش_گوئی_م[1]);    // 1 (class 1)

متغیر درستگی_م = درجہ_بند.درستگی(X, y);
لکھو(درستگی_م);          // 1.0  (100% on training data)

Available algorithms — الگورتھم:

Urdu Description
"جنگل" Random Forest (default — good general purpose)
"لاجسٹک" Logistic Regression (fast, linear)
"ایس_وی_ایم" Support Vector Machine
"پڑوسی" K-Nearest Neighbors
"درخت" Decision Tree
"ترقی" Gradient Boosting
// Switch algorithm easily
متغیر درجہ_بند2 = نیا درجہ_بندی("ایس_وی_ایم");
متغیر درجہ_بند3 = نیا درجہ_بندی("پڑوسی");

Regression — ریگریشن

Predict a number from features:

// Training data: house size → price
متغیر X = [[50], [75], [100], [125], [150]];
متغیر y = [50000, 75000, 100000, 125000, 150000];

متغیر رگریشن_م = نیا ریگریشن("خطی");
رگریشن_م.سیکھیں(X, y);

متغیر پیش_گوئی_م = رگریشن_م.پیش_گوئی([[200]]);
لکھو(پیش_گوئی_م[0]);    // ~200000

Available algorithms:

Urdu Description
"خطی" Linear Regression (default)
"ridge" Ridge (L2 regularization)
"lasso" Lasso (L1 regularization)
"جنگل" Random Forest Regressor

Neural Networks — نیورل نیٹ ورک (TensorFlow/Keras)

Requires: pip install tensorflow

درآمد { ترتیبی_ماڈل, گھنی, اخراج, بیچ_ضابطہ } سے "اردو/ذہین";
درآمد { نمپائی } سے "اردو/ذہین";

متغیر نپ = نیا نمپائی();
متغیر X = نپ.سرنی([[0, 0], [0, 1], [1, 0], [1, 1]]);
متغیر y = نپ.سرنی([0, 1, 1, 0]);    // XOR

// Build model
متغیر ماڈل_م = نیا ترتیبی_ماڈل();
ماڈل_م.شامل_کریں(نیا گھنی(16, فعالیت="relu"));
ماڈل_م.شامل_کریں(نیا اخراج(0.2));      // 20% dropout
ماڈل_م.شامل_کریں(نیا گھنی(1,  فعالیت="sigmoid"));

// Compile
ماڈل_م.مرتب_کریں(
    مرتب_کنندہ="adam",
    نقصان="binary_crossentropy",
    پیمانے=["accuracy"]
);

// Train
ماڈل_م.سیکھیں(X, y, دور=100, خاموش=سچ);

// Predict
متغیر نتیجہ = ماڈل_م.پیش_گوئی(X);
لکھو(نتیجہ);

// Save and load
ماڈل_م.محفوظ("ماڈل.h5");
متغیر لوڈ_ماڈل = ترتیبی_ماڈل.لوڈ("ماڈل.h5");

Available Layers — پرتیں

Urdu English Use
گھنی(units, فعالیت) Dense Fully connected layer
اخراج(شرح) Dropout Prevent overfitting
ایل_ایس_ٹی_ایم(units) LSTM Sequence data
تحویل_2ڈی(فلٹر, kernel) Conv2D Images
بیچ_ضابطہ() BatchNormalization Stabilise training
سرایت(ذخیرہ, طول) Embedding Word embeddings

Common Losses & Optimizers

// Binary classification
ماڈل_م.مرتب_کریں(نقصان="binary_crossentropy");

// Multi-class classification (integer labels)
ماڈل_م.مرتب_کریں(نقصان="sparse_categorical_crossentropy");

// Regression
ماڈل_م.مرتب_کریں(نقصان="mse", مرتب_کنندہ="adam");

LLM — بڑا لسانی ماڈل (llama.cpp)

Run local GGUF models. Requires: pip install llama-cpp-python
Download models from: huggingface.co (look for .gguf format files)

درآمد { بڑا_لسانی_ماڈل } سے "اردو/ذہین";

// Load model
متغیر لم = نیا بڑا_لسانی_ماڈل(
    "ماڈلز/llama-2-7b.Q4_K_M.gguf",
    تھریڈ=4,
    طوالت=2048,
    جی_پی_یو=جھوٹ    // سچ = use GPU
);

// Text completion
متغیر جواب = لم.بات_کرو(
    "اردو پروگرامنگ کیا ہے؟",
    زیادہ_ٹوکن=200,
    درجہ_حرارت=0.7
);
لکھو(جواب);

// Chat format (messages list)
متغیر گفتگو = [
    { role: "system", content: "آپ مددگار اردو معلم ہیں" },
    { role: "user",   content: "پائیتھن کیا ہے؟" }
];
متغیر گفتگو_جواب = لم.چیٹ(گفتگو, زیادہ_ٹوکن=300);
لکھو(گفتگو_جواب);

// Embeddings (enable ایمبیڈنگ_موڈ=سچ at load time)
// متغیر لم2 = نیا بڑا_لسانی_ماڈل("ماڈل.gguf", ایمبیڈنگ_موڈ=سچ);
// متغیر ایمبیڈ = لم2.ایمبیڈنگ("اردو متن");

Check if LLM is available:

اگر (بڑا_لسانی_ماڈل.متاح()) {
    لکھو("llama.cpp دستیاب ہے");
} ورنہ {
    لکھو("pip install llama-cpp-python چلائیں");
}

Practical Example: Spam Classifier — عملی مثال

درآمد { درجہ_بندی, ڈیٹا } سے "اردو/ذہین";

// Training data: word counts → spam (1) or not (0)
// Features: [links_count, exclamation_count, all_caps_words]
متغیر X = [
    [0, 0, 0],    // نہیں اسپام
    [1, 1, 0],    // نہیں اسپام
    [5, 3, 2],    // اسپام
    [10, 5, 4],   // اسپام
    [0, 1, 0],    // نہیں اسپام
    [8, 4, 3]     // اسپام
];
متغیر y = [0, 0, 1, 1, 0, 1];

// Split
متغیر تقسیم_م = ڈیٹا.تقسیم(X, y, جانچ=0.33, بیج=42);
متغیر X_ٹ = تقسیم_م[0];
متغیر X_ج = تقسیم_م[1];
متغیر y_ٹ = تقسیم_م[2];
متغیر y_ج = تقسیم_م[3];

// Train
متغیر درجہ_بند = نیا درجہ_بندی("جنگل");
درجہ_بند.سیکھیں(X_ٹ, y_ٹ);

// Evaluate
متغیر درستگی_م = درجہ_بند.درستگی(X_ج, y_ج);
لکھو(`درستگی: ${گول(درستگی_م * 100, 1)}%`);

// Predict new email
متغیر نئی_ای_میل = [[7, 4, 2]];    // lots of links + exclamations
متغیر نتیجہ = درجہ_بند.پیش_گوئی(نئی_ای_میل);
لکھو(نتیجہ[0] == 1 ? "اسپام" : "ٹھیک");

Quick Reference — فوری حوالہ

Class / Module Purpose Requires
نمپائی Numerical arrays numpy (built-in)
پانڈاز DataFrames, CSV pandas
درجہ_بندی Category prediction scikit-learn
ریگریشن Number prediction scikit-learn
ڈیٹا Train/test split, scaling scikit-learn
ترتیبی_ماڈل + layers Neural networks tensorflow
بڑا_لسانی_ماڈل Local LLM inference llama-cpp-python

← Previous: Web Framework | Next: Text Processing →