(+84) 236.3827111 ex. 402

Hồi quy tuyến tính 2 biến


. Dự đoán điểm của học sinh dự vào 2 tham số là số giờ tham gia học và số bài làm được

giobai=np.array([[1,1], [1,2], [2,1], [2,2], [3,4], [4, 6], [5,8], [5,9]])

diem=np.array([2, 3, 3, 4, 7, 8, 9, 10]).reshape(-1,1)

lr=linear_model.LinearRegression()

lr.fit(giobai, diem)

print('he so a=', lr.coef_, 'he so b=', lr.intercept_)

fig = plt.figure(figsize=(10,10))

ax = fig.add_subplot(111, projection='3d')

ax.set_xlabel("Gio hoc")

ax.set_ylabel("So bai")

ax.set_zlabel("Diem so")

ax.set_title("Hồi quy tuyến tính 3D")

gio=np.linspace(min(giobai[:, 0]), max(giobai[:, 0]), 10)

bai=np.linspace(min(giobai[:, 1]), max(giobai[:, 1]), 10)

x1,x2=np.meshgrid(gio,bai)

y=lr.coef_[0][0]*x1 + lr.coef_[0][1] *x2 +lr.intercept_

#vẽ điểm thực tế

ax.scatter(giobai[:,0], giobai[:,1],diem, color='red', label="Dữ liệu thực tế")

# vẽ mặt phẳng hồi quy

ax.plot_surface(x1, x2, y, color='cyan', alpha=0.5, edgecolor='k')

#nhập dữ liệu test

x_dubao=np.array([[4,4]])

print(' Voi du lieu gio hoc va bai lam cua 1 sinh vien la:', x_dubao)

y_dubao=lr.predict(x_dubao)

print('Diem so du doan la:',y_dubao[0][0])

# Kết quả dự báo là:

Voi du lieu gio hoc va bai lam cua 1 sinh vien la: [[4 4]]

Diem so du doan la: 6.78125