Colab/머신러닝

03. 선형회귀(linear regression)

HicKee 2023. 2. 28. 10:15
# !sudo apt-get install -y fonts-nanum
# !sudo fc-cache -fv
# !rm ~/.cache/matplotlib -rf
# !pip install pyreadstat
# !pip install --upgrade pandas
from sklearn.linear_model import LinearRegression
import pandas as pd
import matplotlib.pyplot as plt

plt.rc('font', family='NanumBarunGothic')
df = pd.read_csv('/content/drive/MyDrive/sample_data/heights.csv')
df

df.head(10) # 첫번쨰 데이터 ~  디폴트 5개 
df.tail(10) # 마지막 데이터 부터 ~

선형 회귀 분석

  1.종속변수 독립변수 를 정해야 한다

  2.정답을 정해야한다

 

독립변수_키_height

X = df['height']

종속변수_몸무게_weight

y = df['weight']

산점도 표시

plt.scatter(X,y)

y = mx + b
X : 학습데이터 ( 트레이닝 데이터) > 지도 학습 
Y : Target, 정답, Label

model = LinearRegression() # 모델 작성

# model.fit(X,y) 
# 오류가 발생 ( 데이터의 형태가 벡터 Vacter (1차원))
print(y.shape) # 1차원 벡터 형태

# 오류 내용
# Reshape your data either using array.reshape(-1(행), 1(열)) if

# 행렬 matrix 형태로 변경해줘야한다 
X1 = X.values.reshape(-1,1) # X.values 순수 데이터를 넣어줌
model.fit(X1,y) # 학습

# X 타입이 Serise -> for문을 사용해야함 속도가 느림 
model.predict(X1) # 에측하는 값
plt.scatter(X,y)
plt.plot(X, model.predict(X1), color='violet')

model.predict([[68]])  # 50인치 _ 예상 데이터를 2차원형태로 넣어줘야한다 [[]]