John al dvénta brve

وارد کردن کتابخانه‌های لازم

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, classification_report
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import streamlit as st

1. بارگذاری داده‌ها

@st.cache_data # برای کش کردن داده‌ها در Streamlit
def load_data():
url = “https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv
data = pd.read_csv(url)
return data

data = load_data()

2. تقسیم داده‌ها به ویژگی‌ها و برچسب‌ها

X = data.drop(“Outcome”, axis=1) # ویژگی‌ها
y = data[“Outcome”] # برچسب‌ها

3. تقسیم داده‌ها به آموزشی و تستی

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4. پیش‌پردازش داده‌ها (نرمال‌سازی)

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

5. ساخت مدل یادگیری عمیق با TensorFlow/Keras

model = Sequential([
Dense(64, activation=‘relu’, input_shape=(X_train.shape[1],)),
Dense(32, activation=‘relu’),
Dense(1, activation=‘sigmoid’) # خروجی باینری (0 یا 1)
])

model.compile(optimizer=‘adam’, loss=‘binary_crossentropy’, metrics=[‘accuracy’])

6. آموزش مدل

model.fit(X_train, y_train, epochs=20, batch_size=32, validation_split=0.2)

7. ارزیابی مدل

y_pred = (model.predict(X_test) > 0.5).astype(int)
accuracy = accuracy_score(y_test, y_pred)
print(f"دقت مدل: {accuracy * 100:.2f}%“)
print(”\nگزارش طبقه‌بندی:\n", classification_report(y_test, y_pred))

8. ذخیره مدل

model.save(“diabetes_model.h5”)

9. ساخت رابط کاربری با Streamlit

st.title(“پیش‌بینی دیابت با هوش مصنوعی”)

st.write(“”"
این برنامه از یک مدل یادگیری عمیق برای پیش‌بینی احتمال ابتلا به دیابت استفاده می‌کند.
لطفاً مقادیر زیر را وارد کنید:
“”")

دریافت ورودی از کاربر

pregnancies = st.number_input(“تعداد بارداری‌ها”, min_value=0, max_value=20, value=1)
glucose = st.number_input(“سطح گلوکز”, min_value=0, max_value=200, value=100)
blood_pressure = st.number_input(“فشار خون”, min_value=0, max_value=150, value=70)
skin_thickness = st.number_input(“ضخامت پوست”, min_value=0, max_value=100, value=20)
insulin = st.number_input(“سطح انسولین”, min_value=0, max_value=900, value=80)
bmi = st.number_input(“شاخص توده بدنی (BMI)”, min_value=0.0, max_value=70.0, value=25.0)
diabetes_pedigree = st.number_input(“سابقه خانوادگی دیابت”, min_value=0.0, max_value=3.0, value=0.5)
age = st.number_input(“سن”, min_value=0, max_value=120, value=30)

پیش‌بینی با مدل

if st.button(“پیش‌بینی”):
input_data = np.array([[pregnancies, glucose, blood_pressure, skin_thickness, insulin, bmi, diabetes_pedigree, age]])
input_data = scaler.transform(input_data) # نرمال‌سازی داده‌های ورودی
prediction = model.predict(input_data)
probability = prediction[0][0] * 100
st.write(f"احتمال ابتلا به دیابت: {probability:.2f}%")
if probability > 50:
st.error(“احتمال ابتلا به دیابت بالا است. لطفاً به پزشک مراجعه کنید.”)
else:
st.success(“احتمال ابتلا به دیابت پایین است.”)

yo that’s the first time I’ve seen right-to-left python. what does it look like in the code editor?

English Translation (because this is actually really cool)

The author divided up all of the code into sections. I have just added the sections as it is written, and used markdown for the code. That is all.


Import the required libraries

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, classification_report
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import streamlit as st
  1. Load the data
@st.cache_data # To cache the data in Streamlit
def load_data():
    url = “https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv”
    data = pd.read_csv(url)
    return data

data = load_data()
  1. Split the data into features and labels
X = data.drop(“Outcome”, axis=1) # features
y = data[“Outcome”] # labels
  1. Split the data into training and Test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  1. Data preprocessing (normalization)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
  1. Building a deep learning model with TensorFlow/Keras
model = Sequential([
Dense(64, activation=‘relu’, input_shape=(X_train.shape[1],)),
Dense(32, activation=‘relu’),
Dense(1, activation=‘sigmoid’) # Binary output (0 or 1)
])

model.compile(optimizer=‘adam’, loss=‘binary_crossentropy’, metrics=[‘accuracy’])
  1. Model training
model.fit(X_train, y_train, epochs=20, batch_size=32, validation_split=0.2)
  1. Evaluate the model
y_pred = (model.predict(X_test) > 0.5).astype(int)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model accuracy: {accuracy * 100:.2f}%“)
print(”\nClassification report:\n", classification_report(y_test, y_pred))
  1. Save the model
    model.save(“diabetes_model.h5”)

  2. Build the UI with Streamlit

st.title(“Diabetes prediction with AI”)

st.write(“”"
This program uses a deep learning model to predict the likelihood of developing diabetes.
Please enter the following values:
“”")

Getting input from user

pregnancies = st.number_input(“Number of pregnancies”, min_value=0, max_value=20, value=1)
glucose = st.number_input(“Glucose level”, min_value=0, max_value=200, value=100)
blood_pressure = st.number_input(“Blood pressure”, min_value=0, max_value=150, value=70)
skin_thickness = st.number_input(“Skin thickness”, min_value=0, max_value=100, value=20)
insulin = st.number_input(“Insulin level”, min_value=0, max_value=900, value=80)
bmi = st.number_input(“Body mass index (BMI)”, min_value=0.0, max_value=70.0, value=25.0)
diabetes_pedigree = st.number_input(“Family history of diabetes”, min_value=0.0, max_value=3.0, value=0.5)
age = st.number_input(“Age”, min_value=0, max_value=120, value=30)

Prediction with model

if st.button(“Prediction”):
input_data = np.array([[pregnancies, glucose, blood_pressure, skin_thickness, insulin, bmi, diabetes_pedigree, age]])
input_data = scaler.transform(input_data) # Normalize input data
prediction = model.predict(input_data)
probability = prediction[0][0] * 100
st.write(f"Probability of diabetes: {probability:.2f}%")
if probability > 50:
st.error(“The probability of diabetes is high. Please see a doctor.”)
else:
st.success(“The probability of diabetes is low.”)
1 Like