uczenie_maszynowe_zadania/cw_6/main.ipynb
2023-07-04 20:42:14 +02:00

94 KiB

import ipywidgets as widgets
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

%matplotlib inline
%reload_ext autoreload
%autoreload 2
data = pd.read_csv('data6.tsv',sep='\t',names=['x','y'])
data = data.sort_values(by=['x'])
# data_x = pd.DataFrame(data['x'])
# data_y = pd.DataFrame(data['y'])
# data_x = data['x'].array.reshape(-1,1)
# data_y = data['y'].array.reshape(-1,1)
data_x = data['x']
data_y = data['y']
plt.scatter(data_x,data_y,color='blue')
<matplotlib.collections.PathCollection at 0x7f7a01580610>
data_x
8      12.390
19     12.424
0      21.252
11     63.254
13     71.108
12     72.439
5      87.624
16     99.073
3     114.269
2     118.162
4     121.444
18    131.023
9     144.264
15    169.084
10    169.900
6     170.039
14    179.476
1     179.842
7     192.651
17    195.528
Name: x, dtype: float64
reg = LinearRegression()
reg.fit(data_x.array.reshape(-1,1),data_y.array.reshape(-1,1))
predict_data_y = reg.predict(data_x.array.reshape(-1,1))
plt.plot(data_x,predict_data_y,color='red')
plt.scatter(data_x,data_y,color='blue')
<matplotlib.collections.PathCollection at 0x7f7a01573a30>
poly = PolynomialFeatures(degree=2,include_bias=False)
poly_features = poly.fit_transform(data_x.array.reshape(-1,1))
poly_features
array([[1.23900000e+01, 1.53512100e+02],
       [1.24240000e+01, 1.54355776e+02],
       [2.12520000e+01, 4.51647504e+02],
       [6.32540000e+01, 4.00106852e+03],
       [7.11080000e+01, 5.05634766e+03],
       [7.24390000e+01, 5.24740872e+03],
       [8.76240000e+01, 7.67796538e+03],
       [9.90730000e+01, 9.81545933e+03],
       [1.14269000e+02, 1.30574044e+04],
       [1.18162000e+02, 1.39622582e+04],
       [1.21444000e+02, 1.47486451e+04],
       [1.31023000e+02, 1.71670265e+04],
       [1.44264000e+02, 2.08121017e+04],
       [1.69084000e+02, 2.85893991e+04],
       [1.69900000e+02, 2.88660100e+04],
       [1.70039000e+02, 2.89132615e+04],
       [1.79476000e+02, 3.22116346e+04],
       [1.79842000e+02, 3.23431450e+04],
       [1.92651000e+02, 3.71144078e+04],
       [1.95528000e+02, 3.82311988e+04]])
poly_reg = LinearRegression()
poly_reg.fit(poly_features,data_y)
y_predicted = poly_reg.predict(poly_features)
y_predicted
array([-202.19762153, -201.84331399, -104.38856598,  508.27954418,
        650.17014568,  675.06921604,  976.63832627, 1225.29257965,
       1583.58306598, 1680.55826071, 1763.95676717, 2015.96524541,
       2385.40255276, 3143.8333219 , 3170.22794171, 3174.73334816,
       3486.92151338, 3499.27966172, 3943.55854171, 4046.49646908])
plt.scatter(data_x,data_y,color='blue')
plt.plot(data_x,y_predicted,color='red')
[<matplotlib.lines.Line2D at 0x7f7a014e55b0>]
poly = PolynomialFeatures(degree=5,include_bias=False)
poly_features = poly.fit_transform(data_x.array.reshape(-1,1))
poly_reg = LinearRegression()
poly_reg.fit(poly_features,data_y)
y_predicted = poly_reg.predict(poly_features)
plt.scatter(data_x,data_y,color='blue')
plt.plot(data_x,y_predicted,color='red')
[<matplotlib.lines.Line2D at 0x7f7a01449a90>]