Лучшая модель для прогнозирования цены жилья с использованием алгоритмов ML/DL с настройкой параметровPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Лучшая модель для прогнозирования цены жилья с использованием алгоритмов ML/DL с настройкой параметров

Сообщение Anonymous »

Я использую следующий код для оценки цен на основе других функций: < /p>
#Code for Hyperparameter Tuning
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from kerastuner.tuners import RandomSearch
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_absolute_error, mean_squared_error

# Load your dataset
# Assuming df is your DataFrame
X = df.drop(['Price', 'Log_Price'], axis=1) # Features
y_price = df['Price']# Target variable
y_log_price = df['Log_Price']
y=y_price
# Split data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Define the model-building function for Keras Tuner
def build_model(hp):
model = Sequential()
# Tune the number of layers
for i in range(hp.Int('num_layers', 1, 6)):
model.add(Dense(
units=hp.Int(f'units_{i}', min_value=32, max_value=256, step=32),
activation='relu'
))
model.add(Dense(1)) # Output layer
# Tune the learning rate
learning_rate = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])
model.compile(
optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),
loss='mse',
metrics=['mae']
)
return model

# Initialize the tuner
tuner = RandomSearch(
build_model,
objective='val_loss',
max_trials=20, # Number of hyperparameter combinations to try
executions_per_trial=2, # Number of models to train per trial
directory='tuner_results',
project_name='house_price_prediction'
)

# Perform hyperparameter search
tuner.search(
X_train, y_train,
epochs=100,
batch_size=32,
validation_split=0.2,
verbose=1
)

# Get the best model
best_model = tuner.get_best_models(num_models=1)[0]

# Evaluate the best model
y_pred = best_model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
print(f"Best Model MAE: {mae}, MSE: {mse}")

# Print the best hyperparameters
best_hyperparameters = tuner.get_best_hyperparameters()[0]
print("Best Hyperparameters:", best_hyperparameters.values)

< /code>
Здесь, в испытаниях, можно быть лучшим и уменьшить MAE как 3000000;
Следующее испытание, если начнется с этой конечной точки, это может дать лучшие результаты и уменьшить больше MAE; Br /> Но в следующем следе я снова получу начальную точку для MAE как 10000000, подобных значениям;
Как мне справиться? !
Если есть идея, это было бы приятно от курса.Price 1.000000
Size 0.591717
Room Count 0.462939
Floor 0.330746
Building Age -0.113272
Neighbourhood -0.160568
District -0.363924
< /code>
, как я искал, были некоторые решения следующим образом: < /p>

[*] Используйте более продвинутый тюнер, такой как байесовская оптимизация (Bayesianoptimization Tuner ) или гипербанд (гипербандный тюнер)
[*] Теплый старт из предыдущих испытаний
[*] Используйте меньшее пространство поиска

Но все же я не могу уменьшить Mae Blow 500, что может быть приемлемым в моем случае?>

Подробнее здесь: https://stackoverflow.com/questions/793 ... eter-tunin
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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