수업(국비지원)/Python

[Python] 머신러닝 - 지도학습(회귀분석)3

byeolsub 2023. 4. 26. 22:26
##################################
# <https://data.kma.go.kr/> : 기후통계분석 > 기온분석 데이터 다운받기
# 1904 ~ 전일까지 : seoul_1215.csv 저장
# 2022.12.15 날짜 예측하기
##################################

<aside> 📌

# seoul_1215.csv 읽기
seoul = pd.read_csv("data/seoul_1215.csv", encoding="cp949")
seoul.info()
seoul.head()

# \\t 제거하기
seoul["날짜"] = seoul["날짜"].str.replace("\\t","")
seoul.info()
seoul.head()

# 년도 컬럼 만들기.
seoul["년도"] = seoul["날짜"].apply(lambda x : x[:4])
seoul.head()

# 월일 컬럼 만들기
seoul["월일"] = seoul["날짜"].str[5:]
seoul.head()

# seoul1215 데이터의 변수에 12-15일 날짜만 저장하기
seoul1215 = seoul.loc[seoul["월일"] == '12-15']
seoul1215.info()
seoul1215.tail()

# 지점 컬럼 제거
del seoul1215["지점"]

# 컬럼명 변경
seoul1215.columns=\\
    ["날짜","평균기온","최저기온","최고기온","년도","월일"]
seoul1215.info()

# 최저기온이 결측값인 데이터 조회하기
seoul1215.loc[seoul1215["최저기온"].isnull()]

# 최저기온이 결측값인 데이터 제거하기
seoul1215 = seoul1215.dropna(subset=["최저기온"],axis=0)
seoul1215.info()

# 독립변수, 종속변수
X = seoul1215[["년도"]]
Y = seoul1215["최저기온"]

# 알고리즘
model = LinearRegression()
model.fit(X,Y)

result = model.predict([[2022]])
result

# 다중 회귀분석 : 독립변수 여러개
X = seoul1215[["년도","최고기온"]] # 2022년 1도
Y = seoul1215["최저기온"]

model = LinearRegression()
model.fit(X,Y)
result = model.predict([[2022,1]])
result

# 그래프 생성
import matplotlib.pyplot as plt
plt.rc("font",family="Malgun Gothic")
plt.rcParams['axes.unicode_minus'] = False
seoul1215.plot()


📌

# 각각의생일자를 그래프로 작성하기
seoul0131 = seoul.loc[seoul["월일"] == '01-31']
del seoul0131["지점"] 

# 그래프 생성
import matplotlib.pyplot as plt
plt.rc("font",family="Malgun Gothic")
plt.rcParams['axes.unicode_minus'] = False
seoul0131.plot()