Sklearn-LinearRegression
Sklearn-LinearRegression이란 Ordinary least squares Linear Regression.
즉 선형회귀 제곱 식에 의한 선형회귀 모델 중 하나 이다.
이 글은 Sklearn LinearRegression에 대한 설명과 자주 사용 하는 함수들을 설명 하고자 만든 글이다.

유튜버 top 1000명에 대한 구독, 좋아요, 알람, 댓글 수의 데이터를 가지고 있을때 이들의 상관 관계는 위 그림과 같이 나타 났고, 그중 Likes, Visits 가 강한 상관 관계가 있어 선형 회귀 모델을 만들어 이들을 예측 해보고자 하였다.
train, test = train_test_split(df,train_size=0.7,test_size=0.3, random_state=231010)
우선 Sklearn 에서 제공하는 train_test_split 을 통하여 학습 데이터와 실험 데이터를 각각 나누었다.
train_test_split 인자 값으로는 arrays, test_size=None, train_size=None, random_state=None
arrys = 나누고자 하는 data의 원본
train_size = 원하는 train_size의 비율
test_size = 원하는 test_size의 비율
random_state = 임의 표본 추출 방식으로 data split시 데이터가 동일하여도 그때마다 train, test에 할당되는 data가 다르기에 random_state에 값을 입력하여 동일한 data가 입력 되면 동일한 값을 주기위해 설정 한다. 값은 int 형식으로 사용자 마음대로 지정 하면 된다.

my_model 이라는 변수에 LinearRegression를 호출하여 fit 함수에 독립변수 Visits, 종속변수 Likes를 넣었다.
그 후 my_model을 통하여 test data 의 Visits을 넣어 test 의 Likes를 예측한 값을 pred_model에 넣었다고 볼 수 있다.
코드 해석
코딩을 모르는 사람들은 이게 뭐야? 라고 할법하고 처음 봤을때는 이해가 어려울수 있어 쉽게 설명하자고 한다면
LinearRegression() 은 통계학에서 나는 선형회귀모델 중 최소제곱으로 선형회귀선을 만들거야!
라고 선언을 했다고 할 수 있다.
이후 LinearRegression().fit() 은 말 그대로 fit 한다, 즉 학습할 것이다!
무엇을? (X = 독립변수, y = 종속 변수)
우리가 통계학에서도 선형회귀선을 만들때 특정 data를 가지고 선형 회귀식을 하나 만들었는데 특정 data로 학습을 하여 식을 만들 겠다와 같고 이 식을 나는 my_model 이란 변수에 저장 하였다고 볼 수 있다.
그럼 이제 우리가 만든 회귀식으로 원하는 값을 구하는 과정이 my_model.predict 라고 할 수 있다.
predict 예측하다, predict(X=독릭변수)를 하게 되면 회귀식을 통하여 종속 변수 y를 가지게 되고 그 값을 pred_model에 저장을 한것이다.

위 결과 test data 실제 값과 예상한 값이 엄청 큰 차이가 나고 likes 는 실제로 음수가 나올수 없기 때문에 음수를 나오지 않게 하기 위한 설정 들이 필요하다는것을 알게 되었다.
그래서 절편이 문제인지, 기울기가 문제인지 확인을 위해 절편과 기울기값을 호출 하였는데 위 그림과 같이 나오게 되었다.
절편의 음수값이 너무 커서 likes가 음수가 되었다는 것을 알게 되었고 절편을 빼고 학습을 한 값은 아래와 같다.

Sklearn-LinearRegression 주요 옵션
