Как устранить ошибку TypeError (ufun c lstsq_n), возникающую при применении np.linalg.lstsq () - PullRequest
0 голосов
/ 11 марта 2020

Я ищу причину ошибки в анализе линейной регрессии с использованием набора данных boston house-picres.

Место, где генерируется ошибка, np.linalg.lstsq () '.

TypeError: Не найдено l oop, совпадающего с речевой подписью, и преобразование было найдено для ufun c lstsq n

  import numpy as np
  import matplotlib.pyplot as plt
  import seaborn as sns

  from sklearn.datasets import load_boston

  # Load the boston house-prices dataset
  boston = load_boston()

  boston_df = DataFrame(boston.data)

  # rename columns
  boston_df.columns = boston.feature_names

  boston_df['Price'] = boston.target

  # RM : average number of rooms per dwelling
  X = boston_df.RM

  # 1*2 matrix transformation
  X = np.vstack(boston_df.RM)
  X = np.array([[value,1] for value in X])

  Y = boston_df.Price

  # Return the least-squares solution to a linear matrix equation.
  m, b = np.linalg.lstsq(X, Y)[0]  # Error occurrence

Возникла проблема с процессом преобразования матрицы 1 * 2. Проблема была решена путем изменения его следующим образом.

до

  # 1*2 matrix transformation
  X = np.vstack(boston_df.RM)
  X = np.array([[value,1] for value in X])

после

  X = np.vstack([boston_df.RM,np.ones(len(boston_df.RM))]).T

Результат

  plt.plot(boston_df.RM, boston_df.Price, 'o')
  x = boston_df.RM
  plt.plot(x, m*x + b, 'r', label='Best Fit Line')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...