Задать вопрос
Ответы пользователя по тегу Регрессионный анализ
  • Что делать, если при учете константы в регрессионном анализе r-квадрат ужасен, но нет оснований не учитывать её?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Теоретически это возможно иметь такую разницу в r-squared. Но довольно редкий кейс, я бы перепроверил данные.

    2. Нужно/ Не нужно это вопрос моделирования. Как ты собираешься интерпретировать модель, если ты используешь линейную регрессию (модели с высокой степенью интерпретации), то ты всегда отталкиваешься от бизнес значений параметров и ошибок. Константу оставляют например когда при нулях (или значениях очень близких к нулю), модель не должна показывать ноль.

    3. Посмотри на другие метрики например среднюю абсолютную ошибку, медианную абсолютную ошибку. Все они имеют хорошую бизнес интерпретацию с которой легко работать. Сам по себе r_squared это количество вариативности (дисперсии) объяснено моделью. 0.19 (19 процентов) вариативности объяснено моделью. Что очень мало и я назвал бы такую модель негодной. В то время как 0.99 (99 Процентов) очень много это учебные показатели, но это еще не все это не означает все супер. Посмотри на вышеупомянутые метрики они измеряются в единицах твоего таргета. Как они себя ведут.

    4. RSS, ESS, TSS - далековато от бизнеса. Это значения которые нужны для F статистики. А она у тебя говорит сама за себя 4314 и 5. Первая модель (где 5) совершенно не пригодна. Вторую перепроверяй, и мысли категориями интерпретации. Это сама суть регрессивного анализа.
    Ответ написан
    2 комментария
  • Как исправить ошибку Scikit-learn?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну код писал не ты, просто взял откуда-то да и все. Ошибка элементарная. У тебя где то он должен подсветить не совпадают размерности массивов. (1,4901) - это матрица с одним рядом и 4901 колонкой, а второй массив одномерный. Предположу что ошибка происходит при рисовании графика, это matplotlib выдает такую ошибку.
    Я тебе сделал маленький пример с идентичной ошибкой.
    X = np.arange(0,4901)
    y = 1.2 * X + 3
    X = X.reshape(1,4901)
    plt.plot(X,y)

    Вот мой код выдаст такую же ошибку. Как поправить нужно привести размерности массивов, к виду при котором с ними можно работать. ну например либо plt.plot(X.reshape(-1,1),y) сработает либо распрямить X сработает plt.plot(X.ravel(),y). И так и так сработает. Ищи на каком plot'e у тебя ошибка и приводи размерности к подходящему виду.
    Ответ написан
    Комментировать