След въвеждането си ChatGPT ни изненадва всеки ден с възможностите си благодарение на изследователския екип на OpenAI. Това има смисъл защо този инструмент има първокласни услуги, които ви дават достъп до най-съвременните възможности на AI, включително плъгини ChatGPT и интерпретатор на код ChatGPT. и т.н

Кодов интерпретатор

Тази функция дава на моделите на OpenAI способността да работят с Python като основен език за момента, да го изпълняват и да получават изходния код, не е ли това фантастична функция?

Изображенията по-долу показват някои от възможностите на интерпретатора на код ChatGPT:

Като първа стъпка трябва да изберете опцията за интерпретатор на код от падащия списък Модел и чрез изображението по-долу ще проучим различни подкани, дадени на този модел, заедно с техните резултати:

Сега, след като имаме генерирания график, нека го разгледаме по-отблизо, като приложим увеличение:

Както виждаме, тази функционалност добавя много възможности към съществуващия модел, което го прави по-интерактивен с хората и техните нужди.

Нека преминем към забавната част, в която направих мини проект за наука за данни, включващ изследване и трансформиране на набор от данни, както и изграждане на алгоритъм за двоична класификация за нашия бизнес проблем.

Пълен анализ на „титаничния“ набор от данни с помощта на новия ChatGPT Code Interpreter

Изображението по-долу показва използваната подкана за анализ на титаничния набор от данни

Забележка:

Почти целият код по-долу (с коментари) и описанията са генерирани от ChatGPT.

Някои части от кода бяха модифицирани ръчно за по-голяма четливост.

# First, let's load the dataset and take a look at its first few rows.

import pandas as pd

# Load the dataset
titanic_df = pd.read_csv('./data/titanic.csv')

# Display the first few rows of the dataset
titanic_df.head()

Наборът от данни съдържа следните колони:

  • Оцелял: Това е целевата променлива, която се опитваме да предвидим (0 = Не; 1 = Да).
  • Pclass: Класа на пътника (1 = 1-ва; 2 = 2-ра; 3 = 3-та). Това е заместител на социално-икономическия статус (1-ви = Горен; 2-ри = Среден; 3-ти = Долен).
  • Пол: Полът на пътника (мъж или жена).
  • Възраст: Възрастта на пътника. Някои фракции присъстват, ако възрастта е оценена.
  • Братя и сестри/съпрузи: Броят братя и сестри/съпрузи, които пътникът има на борда на Титаник.
  • Родители/деца: Броят родители/деца, които пътникът има на борда на Титаник.
  • Тарифа: Тарифата, която пътникът е платил за билета.

След това трябва да проверим дали наборът от данни има липсващи стойности. Нека го направим.

# Check for missing values
titanic_df.isnull().sum()

Наборът от данни does not have any missing values в която и да е от колоните, което е страхотно, защото означава, че не е нужно да правим каквото и да е импутиране или премахване на липсващи данни.

Преди да пристъпим към изграждане на класификационен модел, трябва да подготвим данните.

Колоната Пол е категорична и трябва да бъде преобразувана в числова форма. Можем да направим това, като използваме кодиране с едно горене или кодиране на етикети.

Нека продължим с кодирането на етикети за простота, където ще присвоим 0 за „женски“ и 1 за „мъжки“. Ще използваме класа LabelEncoder от sklearn.preprocessing.

След това ще разделим данните на набор за обучение и набор за тестване. Ще използваме 80% от данните за обучение на модела и 20% за тестване на неговата производителност. Това обикновено се прави, за да се оцени колко добре моделът може да се обобщи към нови, невиждани данни.

За тази цел ще използваме функцията train_test_split от sklearn.model_selection.

След като разделим данните, можем да продължим да изграждаме и обучаваме класификационен модел. Нека започнем с прост модел като логистична регресия, който е добра основа за проблеми с двоичната класификация. Този модел може да бъде създаден с помощта на класа LogisticRegression от sklearn.linear_model.

Ние обучаваме модела, като използваме метода за прилягане, и след това можем да оценим представянето му върху тестовия набор, като използваме метода на резултата, който връща точността на модела. Точността е просто делът на прогнозите, които моделът е получил правилни.

Нека продължим с тези стъпки

from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Convert 'Sex' column to numerical form
le = LabelEncoder()
titanic_df['Sex'] = le.fit_transform(titanic_df['Sex'])

# Split the data into features (X) and target (y)
X = titanic_df.drop('Survived', axis=1)
y = titanic_df['Survived']

# 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, random_state=42)

# Initialize the Logistic Regression model
model = LogisticRegression()

# Fit the model to the training data
model.fit(X_train, y_train)

# Check the accuracy of the model on the test data
accuracy = model.score(X_test, y_test)

accuracy

## output: 0.7528089887640449

Точността на логистичния регресионен модел върху тестовия набор е приблизително 75,28%. Това означава, че моделът правилно е предвидил дали пътник е оцелял или не в около 75,28% от случаите в тестовия набор.

Контузия

Въпреки че това е добро начало, бихме могли да подобрим тази производителност чрез използване на по-сложни модели, настройка на хиперпараметри и/или инженерни функции.

Въпреки това, предвид ограниченията на този въпрос, ние демонстрирахме основния процес на подготовка на данните, изграждане на класификационен модел и оценка на неговата ефективност.

Благодарим ви!

Не забравяйте да получите пълния код след „тази връзка“!

Посетете моя уебсайт: Начало — IsmailOuahbi.com
Следвайте ме в LinkedIn за повече.

Последвай ме в Туйтър".

Скорошните ми статии: