Typically, you need regression to answer whether and how some phenomenon influences the other or how several variables are related. For example, you can use it to determine if and to what extent experience or gender impacts salaries.
Regression searches for relationships among variables. For example, you can observe several employees of some company and try to understand how their salaries depend on their features, such as experience, education level, role, city of employment, and so on.
một căn nhà rộng x1 m2�1 m2, có x2�2 phòng ngủ và cách trung tâm thành phố x3 km�3 km có giá là bao nhiêu. Giả sử chúng ta đã có số liệu thống kê từ 1000 căn nhà trong thành phố đó, liệu rằng khi có một căn nhà mới với các thông số về diện tích, số phòng ngủ và khoảng cách tới trung tâm, chúng ta có thể dự đoán được giá của căn nhà đó không? Nếu có thì hàm dự đoán y=f(x)�=�(�) sẽ có dạng như thế nào. Ở đây x=[x1,x2,x3]�=[�1,�2,�3] là một vector hàng chứa thông tin input, y� là một số vô hướng (scalar) biểu diễn output (tức giá của căn nhà trong ví dụ này).
Lưu ý về ký hiệu toán học: trong các bài viết của tôi, các số vô hướng được biểu diễn bởi các chữ cái viết ở dạng không in đậm, có thể viết hoa, ví dụ x1,N,y,k�1,�,�,�. Các vector được biểu diễn bằng các chữ cái thường in đậm, ví dụ y,x1�,�1. Các ma trận được biểu diễn bởi các chữ viết hoa in đậm, ví dụ X,Y,W�,�,�.
Một cách đơn giản nhất, chúng ta có thể thấy rằng: i) diện tích nhà càng lớn thì giá nhà càng cao; ii) số lượng phòng ngủ càng lớn thì giá nhà càng cao; iii) càng xa trung tâm thì giá nhà càng giảm. Một hàm số đơn giản nhất có thể mô tả mối quan hệ giữa giá nhà và 3 đại lượng đầu vào là:
y≈f(x)=^y�≈�(�)=�^f(x)=w1x1+w2x2+w3x3+w0 (1)�(�)=�1�1+�2�2+�3�3+�0 (1)trong đó, w1,w2,w3,w0�1,�2,�3,�0 là các hằng số, w0�0 còn được gọi là bias. Mối quan hệ y≈f(x)�≈�(�) bên trên là một mối quan hệ tuyến tính (linear). Bài toán chúng ta đang làm là một bài toán thuộc loại regression. Bài toán đi tìm các hệ số tối ưu {w1,w2,w3,w0}{�1,�2,�3,�0} chính vì vậy được gọi là bài toán Linear Regression.
무한개의 선형함수를 계산하지 말고 계산할 선형함수의 갯수를 줄여보자
! 결론:
actual value - predict value : error
import pandas as pd
data = pd.DataFrame(
[
[2,20],[4,40],[8,80],[9,90]
], columns = ['시간','성적']
)
data
x = data[['시간']] #2차원(문제데이터)
y= data['성적']#1차원(정답데이터)
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(x,y)
# 최적의 선형함수 y= 10x+0
# y = wx + b
# w: 가중치(기울기)
# b: 절편 (편향)
# 가중치
lr.coef_
# 절편
lr.intercept_
linear regression la di thang len
SGD regressor la di xuong doc
from sklearn.linear_model import SGDRegressor
sgd = SGDRegressor(eta0=0.00001)
sgd.fit(x,y)
sgd.coef_
sgd.intercept_
# y = 9.85608274x + 1.04236436
sgd.predict([[5]])
data1 = pd.DataFrame(
[
[2,10,20],[4,20,41],[8,40,81],[9,45,91]
], columns = ['시간','지난성적','성적']
)
data1
# indexing 사용할 수 있는 요소 = 인덱스 번호 컬럼 이름 리스트
# fancy인덱싱 = 다양한 방법을 사용하는 인덱싱
x = data1[['시간','지난성적']] #2차원(문제데이터)
y= data1['성적']#1차원(정답데이터)
# 수학 공식을 이용한 해석적 모델
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(x,y)
lr.coef_
lr.intercept_
lr.predict([[7,35]])
# 경사하강법
from sklearn.linear_model import SGDRegressor
SGDRegressor(eta0 = 0.0001)
sgd.fit(x,y)
sgd.coef_
sgd.intercept_
sgd.predict([[5,25]])