Я пытался реализовать модель многоцелевой регрессии, следуя примеру, который нашел по адресу https://medium.com/@tubelwj/developing- ... 0we%20want% Прогноз от 20 до %20.
По какой-то причине я не могу установить более одна целевая переменная, как показано в прикрепленном коде. Я подозреваю, что это может быть проблема с синтаксисом (я относительно новичок в Python), но не могу понять, в чем именно. Может ли кто-нибудь указать мне правильное направление?
Я искал похожие вопросы, но ни один из вопросов или ответов не был таким простым, как то, что, как мне кажется, я ищу.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
# from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import ElasticNet
from sklearn.multioutput import MultiOutputRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error
batting=pd.read_csv('//Users/richardcartier/Documents/PythonProjects/pybaseball/Predict_MLB_Stats/2002_2024_batting_stats.csv', index_col=0)
batting.dropna(axis=1, how='all', inplace=True) # drops any columns with NaN values (how='all' will drop columns only if ALL its values are NaN)
batting = batting.fillna(0, axis=1) # fill remaining columns' NaN's with zero.
# Get column names as an Index object
column_names = batting.columns
print(column_names.to_list)
# These are what I tried and the resultant errors
#targets = batting['Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs']
# OUTPUT: KeyError: ('Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs')
# targets = batting(['Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs'])
# OUTPUT: TypeError: 'DataFrame' object is not callable
targets = batting('Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs')
# OUTPUT: TypeError: 'DataFrame' object is not callable
Для справки: источник (CSV-файл со статистикой бейсбольных матчей) определенно включает столбцы, которые я вызываю, как вы можете видеть ниже из терминала.
Я пытался реализовать модель многоцелевой регрессии, следуя примеру, который нашел по адресу https://medium.com/@tubelwj/developing-multi-class-reгрессия-models-with-python-c8beca5dd482#:~:text=Multiple%20Target%20Variables%3A%20In%20multi,that%20we%20want% Прогноз от 20 до %20. По какой-то причине я не могу установить более одна целевая переменная, как показано в прикрепленном коде. Я подозреваю, что это может быть проблема с синтаксисом (я относительно новичок в Python), но не могу понять, в чем именно. Может ли кто-нибудь указать мне правильное направление? Я искал похожие вопросы, но ни один из вопросов или ответов не был таким простым, как то, что, как мне кажется, я ищу. [code]import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns # from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.linear_model import ElasticNet from sklearn.multioutput import MultiOutputRegressor
from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error, mean_absolute_error
batting=pd.read_csv('//Users/richardcartier/Documents/PythonProjects/pybaseball/Predict_MLB_Stats/2002_2024_batting_stats.csv', index_col=0) batting.dropna(axis=1, how='all', inplace=True) # drops any columns with NaN values (how='all' will drop columns only if ALL its values are NaN) batting = batting.fillna(0, axis=1) # fill remaining columns' NaN's with zero.
# Get column names as an Index object column_names = batting.columns
print(column_names.to_list)
# These are what I tried and the resultant errors #targets = batting['Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs'] # OUTPUT: KeyError: ('Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs')
# targets = batting(['Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs']) # OUTPUT: TypeError: 'DataFrame' object is not callable
targets = batting('Next_Hits', 'Next_HRs', 'Next_RBIs', 'Next_RS', 'Next_SBs') # OUTPUT: TypeError: 'DataFrame' object is not callable [/code] Для справки: источник (CSV-файл со статистикой бейсбольных матчей) определенно включает столбцы, которые я вызываю, как вы можете видеть ниже из терминала.