-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbikes.py
More file actions
37 lines (28 loc) · 1.16 KB
/
Copy pathbikes.py
File metadata and controls
37 lines (28 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import RobustScaler
from sklearn.metrics import mean_absolute_error
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import OneHotEncoder
from TimeTransformer import TimeTransformer
df = pd.read_csv('hour.csv')
y = df['cnt']
columns_to_be_deleted = ['cnt', 'casual', 'registered', 'dteday', 'instant']
df.drop(columns_to_be_deleted, axis=1, inplace=True)
transformers = [
['one_hot', OneHotEncoder(), ['weathersit', 'season', 'yr', 'mnth', 'hr', 'weekday']],
['scaler', RobustScaler(), ['temp', 'atemp', 'hum', 'windspeed']]
]
ct = ColumnTransformer(transformers, remainder='passthrough')
X = ct.fit_transform(df)
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = LinearRegression()
model.fit(X_train, y_train)
p_train = model.predict(X_train)
p_test = model.predict(X_test)
mae_train = mean_absolute_error(y_train, p_train)
mae_test = mean_absolute_error(y_test, p_test)
print(f'Median cnt {np.median(y)}')
print( f'Train {mae_train}, test {mae_test}' )