Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите пожалуйста решить🙏🙏🙏🙏🙏

2.1. Провести анализ датасета животных зоопарка с целью предсказания класса животного (class_type) по его признакам. Определить точность предсказаний с помощью различных метрик. В качестве модели классификации использовать несколько моделей на ваш выбор (например, логистическую регрессию и случайный лес).
2.2. Определить количество животных, имеющих и неимеющих хвост.
2.3. Составить таблицу, хранящую информацию по количеству животных с хвостом и без хвоста в зависимости от класса животного.
2.4. Визуализировать результаты таблицы задания 2.3 в виде столбчатой диаграммы.
Необходимый датасет находится в файле zoo2.csv

По дате
По рейтингу
Аватар пользователя
Новичок
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 import pandas as pd 
from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LogisticRegression 
from sklearn.ensemble import RandomForestClassifier 
from sklearn.metrics import accuracy_score, classification_report 
import matplotlib.pyplot as plt 
 
df = pd.read_csv('zoo2.csv') 
 
X = df.drop(['class_type'], axis=1) 
y = df['class_type'] 
 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 
 
lr_model = LogisticRegression() 
lr_model.fit(X_train, y_train) 
lr_predictions = lr_model.predict(X_test) 
 
rf_model = RandomForestClassifier() 
rf_model.fit(X_train, y_train) 
rf_predictions = rf_model.predict(X_test) 
 
lr_accuracy = accuracy_score(y_test, lr_predictions) 
rf_accuracy = accuracy_score(y_test, rf_predictions) 
 
lr_classification_report = classification_report(y_test, lr_predictions) 
rf_classification_report = classification_report(y_test, rf_predictions) 
 
print("Accuracy Logistic Regression:", lr_accuracy) 
print("Accuracy Random Forest:", rf_accuracy) 
print("\nClassification Report Logistic Regression:\n", lr_classification_report) 
print("\nClassification Report Random Forest:\n", rf_classification_report) 
 
tail_counts = df['tail'].value_counts() 
print("Количество животных с хвостом:", tail_counts[1]) 
print("Количество животных без хвоста:", tail_counts[0]) 
 
table = pd.crosstab(df['class_type'], df['tail'], margins=True, margins_name="Total") 
 
table = table.drop('Total') 
 
table.plot(kind='bar', stacked=True) 
plt.title('Количество животных с хвостом и без хвоста по классам') 
plt.xlabel('Класс животного') 
plt.ylabel('Количество') 
plt.show()