Python Forum
Compare Machine Learning Regression Algorithms Consistently
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Compare Machine Learning Regression Algorithms Consistently
#1
# Comparison of Regression Algorithms
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.linear_model import Lasso
from sklearn.linear_model import ElasticNet
from sklearn.neighbors import KNeighborsRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.svm import SVR
filename = 'housing1.csv'
names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
dataframe = pd.read_csv(filename, names=names)
array = dataframe.values
X = array[:,0:13]
y = array[:,13]
# Prepare the models
models = []
models.append(('LR', LinearRegression()))
models.append(('RR', Ridge()))
models.append(('LaR', Lasso()))
models.append(('ELN', ElasticNet()))
models.append(('KNN', KNeighborsRegressor()))
models.append(('CART', DecisionTreeRegressor()))
models.append(('SVR', SVR()))
# Evaluate models in turn
results = []
names = []
seed = 7
scoring = 'neg_mean_squared_error'
for name, model in models:
    kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
    cv_results = cross_val_score(model, X, y, cv=kfold, scoring=scoring)
    results.append(cv_results)
    names.append(name)
    msg = ('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))
    print(msg)
# Boxplot Algorithm Comparison
fig = plt.figure()
fig.suptitle('Algorithm Comparison')
ax = fig.add_subplot(111)
plt.boxplot(results)
ax.set_xticklabels(names)
plt.show()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Choosing the Best Machine Learning Model FelixLarry 1 2,572 Dec-23-2022, 07:36 AM
Last Post: praveencqr
  Automate Machine Learning Workflows with Pipelines FelixLarry 0 1,739 Sep-06-2022, 09:37 PM
Last Post: FelixLarry
  Evaluating the Performance of Machine Learning Algorithms FelixLarry 0 2,018 Sep-02-2022, 09:20 PM
Last Post: FelixLarry
  Module for creating kernels and convoluting images (Machine Learning) dibsonthis 0 2,175 Dec-14-2017, 11:58 AM
Last Post: dibsonthis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020