نحوه انجام وظایف یادگیری ماشینی با پایتون و SQL

منتشر شده در freecodecamp به تاریخ ۱ می ۲۰۲۳
لینک منبع How to Perform Machine Learning Tasks with Python and SQL

پایتون یکی از پرکاربردترین زبان‌های برنامه‌نویسی برای یادگیری ماشینی است که این به لطف اکوسیستم غنی از کتابخانه‌ها، چارچوب‌ها و ابزارهای آن است.

اما برای ساختن یک سیستم یادگیری ماشینی، باید به داده‌ها دسترسی داشته باشید. بیشتر داده‌ها در پایگاه‌های داده، به‌ویژه پایگاه‌های داده SQL ذخیره می‌شوند که توسط کسب‌وکارها و سازمان‌ها برای ذخیره و مدیریت داده‌ها استفاده می‌شوند.

در این مقاله، نحوه انجام یادگیری ماشینی با پایتون و SQL را بررسی خواهیم کرد.

نحوه اتصال به پایگاه داده SQL با پایتون

برای انجام یادگیری ماشینی با داده‌های ذخیره شده در پایگاه داده SQL، اولین قدم اتصال به پایگاه داده با استفاده از پایتون است.

ما از کتابخانه PyMySQLاستفاده خواهیم کرد که یک کتابخانه کلاینت MySQL Python است که به شما امکان می‌دهد به یک سرور پایگاه داده MySQLمتصل شوید و پرس‌و‌جوهای SQL را انجام دهید.

در اینجا مثالی از نحوه اتصال به پایگاه داده MySQL با استفاده از PyMySQL آورده شده است:

import pymysql
# Connect to the database
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='database_name'
)
# Create a cursor object
cursor = connection.cursor()
# Execute an SQL query
query = &quotSELECT * FROM table_name&quot
cursor.execute(query)
# Fetch the result
result = cursor.fetchall()
# Close the cursor and connection
cursor.close()
connection.close()

این کد به یک پایگاه داده MySQL که روی لوکال‌هاست اجرا می‌شود متصل می‌شود و تمام سطرها را از جدولی به نام table_name انتخاب می‌کند. سپس نتیجه واکشی شده و در متغیر نتیجه ذخیره می‌شود.

نحوه استفاده از پایتون برای یادگیری ماشینی با داده‌های SQL

پس از اتصال به پایگاه داده SQL، می‌توانیم از کتابخانه‌های پایتون مانند Pandas برای خواندن داده‌ها در Pandas DataFrame استفاده کنیم.

قاب داده یک ساختار داده با برچسب دو بعدی با ستون‌هایی از انواع بالقوه متفاوت است. این مانند یک صفحه گسترده یا جدول SQL است.

در اینجا مثالی از نحوه استفاده از پانداس برای خواندن داده‌ها از پایگاه داده SQLآورده شده است:

import pandas as pd
import pymysql
# Connect to the database
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='database_name'
)
# Read data into a Pandas DataFrame
df = pd.read_sql('SELECT * FROM table_name', con=connection)
# Close the connection
connection.close()

این کد از پانداس برای خواندن تمام داده‌ها از جدول table_nameدر پایگاه داده database_nameاستفاده می‌کند و آن را در یک Pandas DataFrameبه نام df ذخیره می‌کند. سپس اتصال پایگاه داده را می‌بندیم.

با داده‌های موجود در Pandas DataFrame، می‌توانیم از کتابخانه‌های پایتون مانند Scikit-learn برای انجام وظایف مختلف یادگیری ماشینی استفاده کنیم. Scikit-learn یک کتابخانه محبوب یادگیری ماشینی است که الگوریتم‌های مختلفی را برای طبقه بندی، رگرسیون، خوشه‌بندی و موارد دیگر ارائه می‌دهد.

در اینجا مثالی از نحوه استفاده از Scikit-learn برای انجام رگرسیون لجستیک بر روی داده‌ها آورده شده است:

import pandas as pd
import pymysql
from sklearn.linear_model import LogisticRegression
# Connect to the database
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='database_name'
)
# Read data into a Pandas DataFrame
df = pd.read_sql('SELECT * FROM table_name', con=connection)
# Prepare the data
X = df[['feature_1', 'feature_2']]
y = df['target']
# Create a logistic regression model
model = LogisticRegression()
# Train the model
model.fit(X, y)
# Close the connection
connection.close()

این کد از پانداس برای خواندن داده‌ها از جدول table_nameدر پایگاه داده database_nameاستفاده می‌کند و آن را در یک Pandas DataFrameبه نام df ذخیره می‌کند.

سپس با انتخاب دو ویژگی (feature_1 و feature_2) و متغیر هدف (y) از قاب داده، داده‌ها را آماده می‌کنیم.

در نهایت، یک مدل رگرسیون لجستیک با استفاده از کلاس LogisticRegression Scikit-learnایجاد می‌کنیم و مدل را با استفاده از روش fit() آموزش می‌دهیم.

همچنین می‌توانیم از Scikit-learnبرای تقسیم داده‌ها به مجموعه‌های آموزشی و آزمایشی و همچنین ارزیابی عملکرد مدل استفاده کنیم. در اینجا مثالی از نحوه تقسیم داده‌ها و ارزیابی مدل آورده شده است:

import pandas as pd
import pymysql
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Connect to the database
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='database_name'
)
# Read data into a Pandas DataFrame
df = pd.read_sql('SELECT * FROM table_name', con=connection)
# Prepare the data
X = df[['feature_1', 'feature_2']]
y = df['target']
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Create a logistic regression model
model = LogisticRegression()
# Train the model
model.fit(X_train, y_train)
# Make predictions on the test set
y_pred = model.predict(X_test)
# Evaluate the model
accuracy = accuracy_score(y_test, y_pred)
print(f&quotAccuracy: {accuracy}&quot)
# Close the connection
connection.close()

این کد از متد ()train_test_split Scikit-learn برای تقسیم داده‌ها به مجموعه‌های آموزشی و آزمایشی استفاده می‌کند.

سپس یک مدل رگرسیون لجستیک ایجاد می‌کنیم، آن را با استفاده از روش fit() روی داده‌های آموزشی آموزش می‌دهیم، با استفاده از روش predict() روی مجموعه تست پیش‌بینی می‌کنیم و با استفاده از روش accuracy_score() عملکرد مدل را ارزیابی می‌کنیم.

نتیجه‌گیری

در این مقاله نحوه انجام یادگیری ماشینی با پایتون و SQL را بررسی کردیم.

ابتدا با استفاده از PyMySQLبه یک پایگاه داده SQL متصل شدیم، سپس از پانداس برای خواندن داده‌ها در Pandas DataFrame استفاده کردیم. سپس از Scikit-learn برای انجام رگرسیون لجستیک روی داده‌ها و همچنین تقسیم داده‌ها به مجموعه‌های آموزشی و آزمایشی و ارزیابی عملکرد مدل استفاده کردیم.

با استفاده از این ابزارها، می‌توانید وظایف یادگیری ماشینی قدرتمندی را روی داده‌های ذخیره شده در پایگاه‌های داده SQL انجام دهید.

این متن با استفاده از ربات ترجمه مقالات برنامه‌نویسی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است. در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.