Я пытаюсь предсказать y, основываясь на двух функциях, хранящихся в X. После прочтения файла Excel и разделения моих данных на столбцы мое значение X выглядит следующим образом:
SibSp Parch
0 1 0
1 1 0
2 0 0
3 1 0
4 0 0
5 0 0
6 0 0
7 3 1
8 0 2
9 1 0
y
обозначает выживаемость, 1 выжил, 0 умер. Х имеет много много больше строк. Я использую train_test_split(X, y, test_size=0.4, random_state=101)
для обучения и тестирования разбивки данных и у меня есть метод обучения и тестирования. Мой тренировочный код выглядит так:
def train():
# Get Data Split
X_train, X_test, y_train, y_test = initData()
# Create LinearRegression Instance
lm = LinearRegression()
# Fit Training Values
lm.fit(X_train,y_train)
visualise(X_test, y_test, lm.predict(X_test))
# Return Trained Data With Testing Data
return X_test, y_test, lm
Мой тестовый код выглядит так:
def test():
# Get The Trained Classifier
X, y, lm = train()
# Fit New Values
lm.fit(X, y)
visualise(X, y, lm.predict(X))
Что, похоже, работает нормально - или я так думаю. Сейчас я пытаюсь визуализировать данные в виде точечной диаграммы с графиком линии предсказания.
def visualise(X, y, predictions):
features = X.shape[1]
colors = ['red', 'blue']
i = 0
while i <= features -1:
plt.scatter(X.iloc[:, i], y, color=colors[i])
# Update: Forgot to add this line when posting question
plt.plot(X.iloc[:, i], predictions, color=colors[i])
i=+1
Но это дает мне сумасшедшие результаты с линиями, идущими повсюду. Я попытался посмотреть онлайн и нашел пример sklearn . Это я пытаюсь повторить это:
Я подумал, что, возможно, из-за того, что у меня есть две функции, мне может понадобиться идентифицировать их отдельно.
def visualise(X, y, predictions):
newY = np.zeros(X.shape[0], X.shape[1]);
newY[:, 0:1] = newY.iloc[:, 0]
plt.scatter(X, y, color='blue')
plt.plot(X, predictions, color='red')
plt.xticks(())
plt.yticks(())
plt.show()
Мне пришлось создать массив newY, так как у X есть две особенности, у y было 1, поэтому формы были разными. Но сейчас я получаю сообщение об ошибке newY = np.zeros(X.shape[0], X.shape[1]);
TypeError: тип данных не понятен
Обновление
def visualise(X, y, predictions):
newY = np.zeros((X.shape[0], X.shape[1]));
newY[:, 0] = y
newY[:, 1] = y
plt.scatter(X, newY, color='blue')
plt.plot(X, predictions, color='red')
Теперь исправляет ошибку, но это мой вывод:

Как я могу построить график рассеяния и построить линию для моих прогнозов?