from datetime import datetime
print(f'Päivitetty {datetime.now()}')
Päivitetty 2022-10-18 12:29:03.367861
Tässä käytän erilliseen tiedostoon (regressio.py) tallennettua funktiota mallin sovittamiseen ja tarkasteluun.
import pandas as pd
# Käytettävät mallit
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from regressio import mallinna
df = pd.read_csv('https://taanila.fi/Advertising.csv')
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 200 entries, 0 to 199 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 200 non-null int64 1 TV 200 non-null float64 2 radio 200 non-null float64 3 newspaper 200 non-null float64 4 sales 200 non-null float64 dtypes: float64(4), int64(1) memory usage: 7.9 KB
# Poistetaan tarpeeton järjestysnumero-sarake
df = df.drop('Unnamed: 0', axis = 1)
# Selittävät muuttujat
X = df[['TV', 'radio', 'newspaper']]
# Kohdemuuttuja
y = df['sales']
malli = LinearRegression()
# Tässä hyödynnän aiemmin määriteltyä mallinna-funktiota
mallinna(malli, X, y)
Opetusdatan selityskerroin 0.932 Testidatan selityskerroin 0.756
malli = RandomForestRegressor()
mallinna(malli, X, y)
Opetusdatan selityskerroin 0.997 Testidatan selityskerroin 0.963
malli = GradientBoostingRegressor()
mallinna(malli, X, y)
Opetusdatan selityskerroin 0.999 Testidatan selityskerroin 0.958