Python/빅데이터분석

LinearRegression, DecisionTreeRegression

김야키 2019. 6. 23. 22:07

  • 데이터셋 : ram_price.csv
In [1]:
import os
import mglearn
#-*- coding:utf-8 -*-
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
ram_prices = pd.read_csv(os.path.join(mglearn.datasets.DATA_PATH, "ram_price.csv"))

plt.semilogy(ram_prices.date, ram_prices.price)
plt.xlabel("Year")
plt.ylabel("Price ($/Mbyte_")
Out[1]:
Text(0,0.5,'Price ($/Mbyte_')
 
In [2]:
from sklearn.tree import DecisionTreeRegressor
from sklearn.linear_model import LinearRegression
import numpy as np
# 2000년 이전을 훈련 데이터로, 2000년 이후를 테스트 데이터로 만듭니다.
data_train = ram_prices[ram_prices.date < 2000]
data_test = ram_prices[ram_prices.date >= 2000]

# 가격 예측을 위해 날짜 특성만을 이용합니다.
X_train = data_train.date[:, np.newaxis]
# 데이터와 타깃의 관계를 간단하게 만들기 위해 로그 스케일로 바꿉니다.
y_train = np.log(data_train.price)

tree = DecisionTreeRegressor().fit(X_train, y_train)
linear_reg = LinearRegression().fit(X_train, y_train)

# 예측은 전체 기간에 대해서 수행합니다.
X_all = ram_prices.date[:, np.newaxis]

pred_tree = tree.predict(X_all)
pred_lr = linear_reg.predict(X_all)

# 예측한 값의 로그 스케일을 되돌립니다.
price_tree = np.exp(pred_tree)
price_lr = np.exp(pred_lr)
In [3]:
plt.semilogy(data_train.date, data_train.price, label="Train Data")
plt.semilogy(data_test.date, data_test.price, label="Test Data")
plt.semilogy(ram_prices.date, price_tree, label="Tree Prediction")
plt.semilogy(ram_prices.date, price_lr, label="LinearRegression Prediction")
plt.legend()
Out[3]:
<matplotlib.legend.Legend at 0x21f404ab9e8>
 

'Python > 빅데이터분석' 카테고리의 다른 글

RandomForest  (0) 2019.06.23
SVC - Support Vector Classification  (0) 2019.06.23
Regression, Tree  (0) 2019.06.23
LinearRegression, Ridge, Lasso 알고리즘  (0) 2019.05.27
붓꽃데이터를 이용한 KNN 분류모델 사용  (0) 2019.04.20