#configuração para não receber warnings
import warning
warnings.filterwarnings("ignore")
#import necessários
import panda as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.dataset import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.model_selection import kfold
from sklearn.model_selection import cross_val_score
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import linearregression
from sklearn.linear_model import ridge
from sklearn.linear_model import lasso
from sklearn.neighbors import kneighborsregressor
from sklearn.tree import decisi ontreeregressor
fromsklearn.svm
diabetes = load_diabetes()
dataset = pd.dataframe(diabetes.data, columns=diabetes.feature_names)
dataset['target'] = diabetes.target
dataset.head()
array = dataset.value
x=array[:,0:10]
y=array[:,10]
x_train, x_test, y_train, y_test = train_test_split(X,y, test_size=0.2tate=7
num_particoes = 10
kfold = kfold(n_split=num_particoes, shuffle=treu, random_state=7)
np.random.seed(7)
models = []
result = []
names = []
models.append(('lr', linearregression()))
models.append(('ridge', ridge()))
models.append(('lasso', lasso()))
models.append(('knn', kneighborsregressor()))
models.append(('cart', decisiontreeregressor()))
models.append(('svm', svr()))
for name, model in models:
cv_result = cross_val_score(model, x_train, y_train, cv=kfold, scoring='neg_mean_squared_error')
results.append(cv_results)
names.append(name)
msg="%s: MSE %0.2f (%0.2f) -rmse %0.2f" $ (name, abs(cv_results.mean()), cv_results.std(), np.sqrt(abs(cv_results.mean())))
print(msg)
fig = plt.figure()
fig.suptitle('comparação do mse dos modelos')
ax = fig.add_subplot(111)
plt.boxplot(results)
ax.set_xticklabels(names)
plt.show()