import pandas as pd
print(pd.__version__)
Download Link: https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data
Summary: Given 8 pieces of information (features) about a vehicle, predict its mileage
Notes:
auto_data = pd.read_csv('../data/auto-mpg.data', delim_whitespace = True, header=None,
names = ['mpg',
'cylinders',
'displacement',
'horsepower',
'weight',
'acceleration',
'model',
'origin',
'car_name'])
auto_data.head()
len(auto_data['car_name'].unique())
len(auto_data['car_name'])
There are too many unique values for any pattern to be detected
auto_data = auto_data.drop('car_name', axis=1)
auto_data.head()
auto_data['origin'] = auto_data['origin'].replace({1: 'america', 2: 'europe', 3: 'asia'})
auto_data.head()
auto_data = pd.get_dummies(auto_data, columns=['origin'])
auto_data.head()
import numpy as np
auto_data = auto_data.replace('?', np.nan)
auto_data = auto_data.dropna()
auto_data.head()
from sklearn.model_selection import train_test_split
X = auto_data.drop('mpg', axis=1)
# Taking the labels (mpg)
Y = auto_data['mpg']
# Spliting into 80% for training set and 20% for testing set so we can see our accuracy
X_train, x_test, Y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=0)
from sklearn.svm import SVR
regression_model = SVR(kernel='linear', C=1.0)
regression_model.fit(X_train, Y_train)
regression_model.coef_
regression_model.score(X_train, Y_train)
from pandas import Series
import matplotlib.pyplot as plt
%matplotlib inline
predictors = X_train.columns
coef = Series(regression_model.coef_[0],predictors).sort_values()
coef.plot(kind='bar', title='Modal Coefficients', figsize=(7,3))
from sklearn.metrics import mean_squared_error
y_predict = regression_model.predict(x_test)
%pylab inline
pylab.rcParams['figure.figsize'] = (15, 6)
plt.plot(y_predict, label='Predicted')
plt.plot(y_test.values, label='Actual')
plt.ylabel('MPG')
plt.legend()
plt.show()
regression_model.score(x_test, y_test)
regression_model_mse = mean_squared_error(y_predict, y_test)
regression_model_mse
import math
math.sqrt(regression_model_mse)