<jupyter_start><jupyter_text>Multiple Linear Regression  데이터 불러오기<jupyter_code>from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

import pandas as pd
# 당뇨병 데이터 갖고 오기
diabetes_dataset = datasets.load_diabetes()<jupyter_output><empty_output><jupyter_text>데이터 정보<jupyter_code>print(diabetes_dataset.DESCR)<jupyter_output>.. _diabetes_dataset:

Diabetes dataset
----------------

Ten baseline variables, age, sex, body mass index, average blood
pressure, and six blood serum measurements were obtained for each of n =
442 diabetes patients, as well as the response of interest, a
quantitative measure of disease progression one year after baseline.

**Data Set Characteristics:**

  :Number of Instances: 442

  :Number of Attributes: First 10 columns are numeric predictive values

  :Target: Column 11 is a quantitative measure of disease progression one year after baseline

  :Attribute Information:
      - age     age in years
      - sex
      - bmi     body mass index
      - bp      average blood pressure
      - s1      tc, T-Cells (a type of white blood cells)
      - s2      ldl, low-density lipoproteins
      - s3      hdl, high-density lipoproteins
      - s4      tch, thyroid stimulating hormone
      - s5      ltg, lamotrigine
      - s6      glu, blood sugar level

Note: Each of these 10 feature va[...]<jupyter_text>데이터 컬럼명 가져오기* feature_names<jupyter_code>diabetes_dataset.feature_names<jupyter_output><empty_output><jupyter_text>데이터만 가져오기* .data<jupyter_code>diabetes_dataset.data
# 입력 변수 pandas dataframe으로 변환
X = pd.DataFrame(diabetes_dataset.data, columns=diabetes_dataset.feature_names)
X<jupyter_output><empty_output><jupyter_text>목표 변수 ['diabetes']* .target<jupyter_code>diabetes_dataset.target
# 목표 변수를 사용하기 편하게 pandas dataframe으로 변환
y = pd.DataFrame(diabetes_dataset.target, columns=['diabetes'])
y<jupyter_output><empty_output><jupyter_text>데이터 분리<jupyter_code>x_train, x_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=5)
print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)<jupyter_output>(353, 10) (89, 10) (353, 1) (89, 1)<jupyter_text>train data<jupyter_code>display(x_train,x_test)<jupyter_output><empty_output><jupyter_text>test data<jupyter_code>display(y_train,y_test)<jupyter_output><empty_output><jupyter_text>모델 적용 및 학습<jupyter_code>model = LinearRegression()
model.fit(x_train, y_train)<jupyter_output><empty_output><jupyter_text>theta 순서대로 theta 1, 2, 3, 4, ...<jupyter_code>model.coef_<jupyter_output><empty_output><jupyter_text>theta 0  `intercept_` 손실을 최대한 적게 하는 값<jupyter_code>model.intercept_<jupyter_output><empty_output><jupyter_text>모델 평가  `test set`의 예측 값 구하기<jupyter_code>y_test_prediction = model.predict(x_test)
y_test_prediction[:10]<jupyter_output><empty_output><jupyter_text>예측 값(`y_test_prediction`)과 실제 값(output = `y_test`)을 비교  RMSE평균 제곱 오차의 루트를 통해서 테스트 데이터에서의 모델 성능 판단<jupyter_code>mse = mean_squared_error(y_test, y_test_prediction)
rmse =  mse ** 0.5
rmse<jupyter_output><empty_output><jupyter_text>---  코드 정리<jupyter_code># 필요한 라이브러리 import
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

import pandas as pd  

# 당뇨병 데이터 갖고 오기
diabetes_dataset = datasets.load_diabetes()

# 입력 변수를 사용하기 편하게 pandas dataframe으로 변환
X = pd.DataFrame(diabetes_dataset.data, columns=diabetes_dataset.feature_names)

# 목표 변수를 사용하기 편하게 pandas dataframe으로 변환
y = pd.DataFrame(diabetes_dataset.target, columns=['diabetes'])

# train_test_split를 사용해서 주어진 데이터를 학습, 테스트 데이터로 나눈다
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=5)

linear_regression_model = LinearRegression()  # 선형 회귀 모델을 가지고 오고 
linear_regression_model.fit(X_train, y_train)  # 학습 데이터를 이용해서 모델을 학습 시킨다

y_test_predict = linear_regression_model.predict(X_test)  # 학습시킨 모델로 예측

# 평균 제곱 오차의 루트를 통해서 테스트 데이터에서의 모델 성능 판단
mse = mean_squared_error(y_test, y_test_predict)

mse ** 0.5<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup