Как построить график линейной регрессии SciKit-Learn - PullRequest
0 голосов
/ 12 июля 2020

Я новичок в SciKit-Learn, и я работал над проблемой регрессии (King County CSV) на kaggle. Я тренировал регрессионную модель для прогнозирования цены дома и хотел построить график, но понятия не имел, как это сделать. Я использую python 3.6. Мы будем очень благодарны за любые советы или предложения.

#importing numpy and pandas, seaborn

import numpy as np #linear algebra
import pandas as pd #datapreprocessing, CSV file I/O
import seaborn as sns #for plotting graphs
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt

data = pd.read_csv('kc_house_data.csv')
data = data.drop('date',axis=1)
data = data.drop('id',axis=1)

X = data
Y = X['price'].values
X = X.drop('price', axis = 1).values

X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.30, random_state=21)


reg = LinearRegression()
kfold = KFold(n_splits=15, random_state=21)
cv_results = cross_val_score(reg, X_train, Y_train, cv=kfold, scoring='r2')

print(cv_results)

round(np.mean(cv_results)*100, 2)

Ответы [ 4 ]

2 голосов
/ 12 июля 2020

Вы можете использовать matplotlib для построения

import matplotlib.pyplot as plt
plt.figure(figsize=(16, 9))
plt.plot(cv_results)
    
plt.show()

Вы можете использовать несколько типов графиков, например, простой линейный график или график рассеяния.

plt.barh(x, y) # for bar graph
plt.plot(x,y)  # for line graph
plt.scatter(x,y) # for scatter graph
1 голос
/ 12 июля 2020

Seaborn - очень полезная библиотека визуализации. Настолько, что вы можете использовать seaborn.regplot для прямого построения данных и линии соответствия модели регрессии. Он напрямую принимает переменную предиктора и переменную ответа и выводит график точек данных и линию наилучшего соответствия. Вот ссылка на то, как его использовать:

https://seaborn.pydata.org/generated/seaborn.regplot.html

1 голос
/ 12 июля 2020
0 голосов
/ 12 июля 2020

Я тоже участвовал в таком же соревновании на kaggle. Для регрессий я бы использовал go для диаграммы рассеяния:

import matplotlib as plt
plt.plot(x,y)

Что касается визуализации этого конкретного соревнования, я бы использовал следующий код:

# visualising some more outliers in the data values
fig, axs = plt.subplots(ncols=2, nrows=0, figsize=(12, 120))
plt.subplots_adjust(right=2)
plt.subplots_adjust(top=2)
sns.color_palette("husl", 8)
for i, feature in enumerate(list(train[numeric]), 1):
if(feature=='MiscVal'):
    break
plt.subplot(len(list(numeric)), 3, i)
sns.scatterplot(x=feature, y='SalePrice', hue='SalePrice', palette='Blues', data=train)
    
plt.xlabel('{}'.format(feature), size=15,labelpad=12.5)
plt.ylabel('SalePrice', size=15, labelpad=12.5)

for j in range(2):
    plt.tick_params(axis='x', labelsize=12)
    plt.tick_params(axis='y', labelsize=12)

plt.legend(loc='best', prop={'size': 10})
    
plt.show()

Я действительно загрузил Полный код этого конкурса на моем GitHub, если вы хотите взглянуть;) (в настоящее время я вхожу в 14% лучших на этом конкурсе).

...