Игра с sci-kit в первый раз. По сути, используется многолинейная регрессия для прогнозирования числа на основе числовых функций, а также категорий.
Мой код работает (достаточно удивительно ;-)) - однако, он работает немного слишком хорошо. Я получаю среднюю ошибку менее 1/1000000 на тестовом наборе, что не может быть правдой.
Я новичок в Python, и он чувствует себя не так. Я сделал что-то неправильно, когда дело доходит до перевода между наборами данных и фреймами данных? Я заметил, что мне пришлось использовать [[variable]] несколько раз, чтобы заставить его работать.
df = pd.read_csv('train_medium.csv')
df = df.fillna(method='ffill')
y = df[['Income']]
x = df[[ ... columns here ... ]]
cat_columns = [ ... columns here ... ]
x = pd.get_dummies(df, prefix_sep="__", columns=cat_columns)
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
regressor = LinearRegression()
regressor.fit(X_train, y_train)
coeff_df = pd.DataFrame([[regressor.coef_]], x.columns, columns=['Coefficient'])
# print(coeff_df)
y_pred = regressor.predict(X_test)
df = pd.DataFrame({'Actual': [y_test]['Income'], 'Predicted': [y_pred]})
print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred))
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred))
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
Спасибо за любые идеи, я потратил целый день на это -.-