След въвеждането си 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 за повече.
Последвай ме в Туйтър".