Тёмный

Como usar uma árvore de decisão para fazer previsões! 

Universidade dos Dados
Подписаться 15 тыс.
Просмотров 601
50% 1

Опубликовано:

 

22 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@dududoliveira
@dududoliveira 2 месяца назад
Ótimo. Universidade dos Dados 🎉
@CaioGobbi
@CaioGobbi 2 месяца назад
Muito bacana o Machine Learning, mas ainda me perco legal, logo mais deve tudo se esclarecer. Boa aula esta aqui 🫡
@universidade-dos-dados
@universidade-dos-dados 2 месяца назад
É aos poucos mesmo, não esquenta não!
@Oandrewborges
@Oandrewborges 2 месяца назад
32:20 Presunção de inocência.
@universidade-dos-dados
@universidade-dos-dados 2 месяца назад
Ahhhhh valeu!!! Hahahahaha não lembrava de jeito nenhum o termo
@MarconiCrunch
@MarconiCrunch 2 месяца назад
Na analise de dados, ha um padrao do que é mais usado no dia a dia dentro do que ja é esperado? sei q é normal excel, bi, sql, e python, mas qual geralmente é mais usado para cargos de entrada? Ótimo video, inclusive
@universidade-dos-dados
@universidade-dos-dados 2 месяца назад
O mais comum de ferramentas que você vai ver, para o analista de dados, é o SQL e alguma ferramenta de dataviz (Power BI ou Tableau, normalmente). A gente usa Excel em alguns momentos, algumas tarefas são feitas no Excel.
@MarconiCrunch
@MarconiCrunch 2 месяца назад
@@universidade-dos-dados Entendi, obrigado pela resposta
@Sub-Zero888
@Sub-Zero888 2 месяца назад
Irmão o meu grande problema e fazer a árvore "olhar para o futuro" ela para no último valor, já fiz de tudo e ela não prevê o próximo valor, já ajustei hiperparâmetros, fiz inúmeros testes, me fala como construir a função responsável por prever o valor futuro baseado nos dados históricos
@universidade-dos-dados
@universidade-dos-dados 2 месяца назад
Depois que você instanciar a árvore (model = DecisionTreeClassifier), você vai treiná-la (model.fit(X_train, y_train). Uma vez que ela encontrou os padrões de seus dados, você vai validar com os dados de teste, certo? Fazendo model.predict(X_test), mas lembra o que é o dado de teste? É como se fosse uma simulação do seu modelo funcionando em produção, ou seja, ali você já está fazendo previsões, a diferença é que você sabe qual é o valor correto que ele deveria predizer (y_test), mas ali você já tem o que seria seu modelo em produção. Então se chegar dados novos, digamos um dataframe chamado "dados_novos", você consegue obter as predições fazendo model.predict(dados_novos).
@Sub-Zero888
@Sub-Zero888 2 месяца назад
@@universidade-dos-dados onde estou errando, me ajude pelo amor de Deeeeeeeuuuuuussss, eu omiti parte do codigo para breviedade, mas acredito que isso seja o principal, o grosso da questao, me ajudeeeeeeeeeeee def load_and_preprocess_data(): df = pd.read_csv('dados.csv', encoding='UTF-8') df['Tempo'] = pd.to_datetime(df['Time'], format='%H:%M') df['Hora'] = df['Time'].dt.hour df['Minuto'] = df['Time'].dt.minute df= df.dropna() y = df['Multi'] X = df.drop(columns=['Multi', 'Tempo']) feature_names = X.columns.tolist() scaler = StandardScaler() X = scaler.fit_transform(X) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) return X, y, scaler, feature_names, df def train_decision_tree(X, y): X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) tscv = TimeSeriesSplit(n_splits=10) model = DecisionTreeRegressor(max_depth=None, min_samples_split=2, min_samples_leaf=1, random_state=123) scores = cross_val_score(model, X_train, y_train, cv=tscv, scoring='neg_mean_squared_error') model.fit(X_train, y_train) return model def evaluate_model(model, X_test, y_test): y_pred = model.predict(X_test) mse = mean_squared_error(y_test, y_pred) print(f"Mean Squared Error on test set: {mse}") return mse def predict_next_value(model, X, feature_names, last_prediction=None): next_X = X[-1].reshape(1, -1) next_y = model.predict(next_X)[0] return next_y, next_X if __name__ == "__main__": X, y, scaler, feature_names, df = load_and_preprocess_data() X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) decision_tree_model = train_decision_tree(X_train, y_train) mse = evaluate_model(decision_tree_model, X_test, y_test) dt_prediction, _ = predict_next_value(decision_tree_model, X, feature_names) while True: time.sleep(2) new_X, new_y, new_scaler, _, new_df = load_and_preprocess_data() new_row_count = len(new_X) new_observations = new_row_count - last_row_count if new_observations > 0: new_scaler = update_scaler(scaler, new_X[-new_observations:]) dt_prediction, _ = predict_next_value(decision_tree_model, new_X, feature_names) print(f" Decision Tree Prediction for next value: {dt_prediction:.2f}")
@Sub-Zero888
@Sub-Zero888 2 месяца назад
@@universidade-dos-dados me ajude pelo amor de Deeeeeeuuuuussss, eu omiti parte do codigo para breviedade, mas acho que essa é a parte principal onde tem o erro, me ajudaaaaaaaaaaaaaaa, vou chorar demais def load_and_preprocess_data(): df = pd.read_csv('dados.csv', encoding='UTF-8') df['Tempo'] = pd.to_datetime(df['Time'], format='%H:%M') df['Hora'] = df['Time'].dt.hour df['Minuto'] = df['Time'].dt.minute df= df.dropna() y = df['Multi'] X = df.drop(columns=['Multi', 'Tempo']) feature_names = X.columns.tolist() scaler = StandardScaler() X = scaler.fit_transform(X) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) return X, y, scaler, feature_names, df def train_decision_tree(X, y): X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) tscv = TimeSeriesSplit(n_splits=10) model = DecisionTreeRegressor(max_depth=None, min_samples_split=2, min_samples_leaf=1, random_state=123) scores = cross_val_score(model, X_train, y_train, cv=tscv, scoring='neg_mean_squared_error') model.fit(X_train, y_train) return model def evaluate_model(model, X_test, y_test): y_pred = model.predict(X_test) mse = mean_squared_error(y_test, y_pred) print(f"Mean Squared Error on test set: {mse}") return mse def predict_next_value(model, X, feature_names, last_prediction=None): next_X = X[-1].reshape(1, -1) next_y = model.predict(next_X)[0] return next_y, next_X if __name__ == "__main__": X, y, scaler, feature_names, df = load_and_preprocess_data() X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123) decision_tree_model = train_decision_tree(X_train, y_train) mse = evaluate_model(decision_tree_model, X_test, y_test) dt_prediction, _ = predict_next_value(decision_tree_model, X, feature_names) while True: time.sleep(2) new_X, new_y, new_scaler, _, new_df = load_and_preprocess_data() new_row_count = len(new_X) new_observations = new_row_count - last_row_count if new_observations > 0: new_scaler = update_scaler(scaler, new_X[-new_observations:]) dt_prediction, _ = predict_next_value(decision_tree_model, new_X, feature_names) print(f" Decision Tree Prediction for next value: {dt_prediction:.2f}")
@Sub-Zero888
@Sub-Zero888 2 месяца назад
@@universidade-dos-dados já postei 10 respostas e o RU-vid está apagando todas que merda
@Sub-Zero888
@Sub-Zero888 2 месяца назад
@@universidade-dos-dados preciso falar com vc, faço até um Pix se vc conseguir me ajudar corrigir o problema
Далее
Este é o trabalho do cientista de dados!
51:55
Просмотров 2,5 тыс.
Gráficos Essenciais para Análise de Dados (em Python)
25:55
Handsoms😍💕
00:15
Просмотров 6 млн
Cool Wrap! My Book is OUT 🥳
00:27
Просмотров 930 тыс.
COMO FAZER UMA ANALISE EXPLORATÓRIA DE QUALIDADE
28:13
UM DIA NA ROTINA DE UM ANALISTA DE DADOS DO GLOBOPLAY.
18:12
Árvore de decisão - Como funciona (Machine Learning)
41:33
Introdução à Análise Dados em R
25:58
Просмотров 264
Matemática para Cientistas de Dados
18:44
Просмотров 3,6 тыс.
Árvore de decisão. Exemplo completo.
36:28
Просмотров 43 тыс.