До вчерашнего дня у меня не было проблем с построением конкретного графика, но с сегодняшнего дня я получаю несколько графиков вместо одного.
Код ниже предназначен для создания только одного графика, но каким-то образом я получаюмного разных.
Как я могу это исправить?
Обновление: мне удалось получить сюжет на Jupyter онлайн просто отлично, я думаю, что проблема может быть связана с Cloudera DataScience Workbench, есть идеи?
данные: http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data
Код, который я использую для построения
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn import preprocessing
from sklearn.model_selection import learning_curve
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
df = pd.read_csv('http://archive.ics.uci.edu/ml/'
'machine-learning-databases/'
'breast-cancer-wisconsin/wdbc.data'
, header=None)
X = df.loc[:,2:].values
y = df.loc[:,1].values
le = preprocessing.LabelEncoder()
y = le.fit_transform(y)
X_train, X_test, y_train, y_test =\
train_test_split(X, y, test_size=0.20, \
stratify=y, random_state=1)
pipe_lr = make_pipeline(StandardScaler(),
LogisticRegression(penalty='l2',
random_state=1))
train_sizes, train_scores, test_scores = \
learning_curve(estimator = pipe_lr, X = X_train,
y = y_train,
train_sizes=np.linspace(0.1, 1.0, 10),
cv = 10, n_jobs = 1)
train_mean = np.mean(train_scores, axis = 1)
train_std = np.std(train_scores, axis = 1)
test_mean = np.mean(test_scores, axis = 1)
test_std = np.std(test_scores, axis = 1)
plt.plot(train_sizes, train_mean, color = 'blue',
marker = 'o', markersize = 5,
label = 'training_accuracy')
plt.fill_between(train_sizes,
train_mean + train_std,
train_mean - train_std,
alpha = 0.5, color = 'blue')
plt.plot(train_sizes, test_mean, color = 'green',
linestyle = '--', marker = 's', markersize = 5,
label = 'validation accuracy')
plt.fill_between(train_sizes,
test_mean + test_std,
test_mean - test_std,
alpha = 0.15, color = 'green')
plt.grid()
plt.xlabel("Number of training samples")
plt.ylabel('Accuracy')
plt.legend(loc='lower right')
plt.ylim([0.85, 1.025])
plt.show()
Использование Jupyter Online Я могу получить нужный график
Нужно ли что-то сбрасывать на matplotlib в CDSW?