DLCS1972-Машинное обучениеPython

Программы на Python
Ответить
Anonymous
 DLCS1972-Машинное обучение

Сообщение Anonymous »

🔹Обработка пропущенных значений
Используйте простые правила:
df.isnull().sum()

✔ Числовые столбцы
df['age'].fillna(df['age'].mean(), inplace=True)

✔ Категориальные столбцы
df['gender'].fillna(df['gender'].mode()[0], inplace=True)

👉 Совет: никогда не удаляйте строки, если не слишком много пропущенных значений.

🔹 Кодировка (ОЧЕНЬ ВАЖНО)
✔ Кодировка меток (для упорядоченных/простых категорий)
from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
df['gender'] = le.fit_transform(df['gender'])

✔ One-Hot Encoding (ЛУЧШИЙ для большинства случаев)
df = pd.get_dummies(df, drop_first=True)

👉 На хакатоне → Один раз безопаснее

🧪 3. Разработка функций (СЕКРЕТНОЕ ОРУЖИЕ 🔥)
Даже простые трюки могут повысить точность:
✔ Создавайте новые функции
df['total'] = df['math'] + df['science']

✔ Объедините функции
df['age_income'] = df['age'] * df['income']

✔ Биннинг
df['age_group'] = pd.cut(df['age'], bins=3)

👉 Подумайте: «Могу ли я сделать данные более значимыми?»

🤖 4. Модели, которые СЛЕДУЕТ попробовать (БЫСТРО)
Не придерживайтесь одной модели!
🥇 Всегда пробуйте следующие:

✔ Логистическая регрессия (базовый уровень)

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()

✔ КНН

from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=5)

👉 Попробуйте разные значения k (3,5,7)

✔ Дерево решений

from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(max_depth=5)

✔ Случайный лес (ЛУЧШЕ часто 🔥)

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100)

👉 Это часто обеспечивает высочайшую точность

📊 5. Обучение и оценка
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2)

model.fit(X_train, y_train)

pred = model.predict(X_val)

print(accuracy_score(y_val, pred))

👉 Сравнить модели → выбрать лучшую

🚀 6. Окончательный прогноз
final_pred = model.predict(test_data)


⚡ 7. Советы профессионалов (ЭТО МОЖЕТ ВЫИГРАТЬ ВАМ ХАКАТОН)
🧠 Совет 1: начните ПРОСТО
Не теряйте времени → сначала создайте работающий конвейер

🧠 Совет 2: используйте случайный лес, если запутались
👉 Безопасно и мощно

🧠 Совет 3. Настраивайтесь быстро
RandomForestClassifier(n_estimators=200, max_depth=10)


🧠 Совет 4: Следите за переоснащением
Если точность обучения >> точность проверки → уменьшите сложность

🧠 Совет 5: Очистите тестовые данные ТАКИМ же СПОСОБОМ
⚠️ Очень важно!
Примените ТАКУЮ предварительную обработку к тестовым данным

🧩 8. Готовый шаблон (ИСПОЛЬЗУЙТЕ ЭТО НА ХАКАТОНЕ)
# 1. Load
import pandas as pd
df = pd.read_csv('train.csv')

# 2. Handle missing
df.fillna(df.mean(), inplace=True)

# 3. Encode
df = pd.get_dummies(df, drop_first=True)

# 4. Split
X = df.drop('target', axis=1)
y = df['target']

from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2)

# 5. Model
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()

model.fit(X_train, y_train)

# 6. Evaluate
from sklearn.metrics import accuracy_score
pred = model.predict(X_val)
print(accuracy_score(y_val, pred))

#################################33
ohe = OneHotEncoder()
feature_array = ohe.fit_transform(train[["course"]]).toarray()
feature_labels = ohe.get_feature_names_out(["course"])

new_features = pd.DataFrame(feature_array,columns = feature_labels)
train= pd.concat([train,new_features],axis = 1)

from sklearn.model_selection import train_test_split
train,test = train_test_split(df,test_size = 0.2,random_state = 42)
train_Y = train["burnout_level"]
train_X = train.drop("burnout_level",axis = 1)
test_X = test.drop("burnout_level",axis= 1)
test_Y = test["burnout_level"]

len(train_X) == len(train_Y)
train_X.shape

le = LabelEncoder()
train_X["gender"] = le.fit_transform(train_X["gender"])
test_X["gender"] = le.fit_transform(test_X["gender"])

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
train_X = train_X.iloc[:len(train_Y)]

model.fit(train_X,train_Y)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»