반응형
6/13 공부 내용 정리
- plantuml로 시퀀즈 다이어그램, 유즈케이스 다이어그램(Usecase Diagram) 그리기.
- ML문제 : 캘리포니아 주택 가격 데이터셋을 이용하여 미래 집값 예측하기.
- ML Workflow
1) 머신러닝 알고리즘을 이용하여 문제를 해결하는 방법론,
머신러닝 프로젝트 수행 방법
- Module1 : 분석 문제 정의 (문제가 무엇인가?)
- Module2 : 데이터 수집 및 정제 (이 데이터가 의미하는 것은 무엇이지? 필요한 데이터는?)
- Module3 : 탐색적 데이터 분석(EDA)
- 결측치 처리
- 데이터 시각화 (matplotlib.pyplot / seaborn)
- 통계량 분석
- Module4 : 피처 엔지니어링
- 차원의 변경
- 상관관계 분석
- 피처 추출
- 범주형 변수 인코딩
- Module5
- 예측 모델 개발 및 평가 - 데이터 뽑아내기
# 1. 데이터 및 라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import fetch_california_housing
#data = fetch_california_housing()
X = data = fetch_california_housing(as_frame=True)['data']
Y = target = fetch_california_housing(as_frame=True)['target']
print(X)
print(Y)
a = pd.concat([X, Y], axis=1)
print(a)
print(a.info())
'''
MedInc : 소득 (중앙값)
HouseAge : 주택 나이 (중앙값)
AveRooms : 전체 방 수
AveBedRooms : 전체 침실 수
Population : 인구
AveOccup : 세대원 수
Latitude : 위도
'''
# 데이터
C:\Python391\python.exe C:\Users\ezen\Desktop\Programming\Python_Math\ML4\ml1.py
MedInc HouseAge AveRooms ... AveOccup Latitude Longitude
0 8.3252 41.0 6.984127 ... 2.555556 37.88 -122.23
1 8.3014 21.0 6.238137 ... 2.109842 37.86 -122.22
2 7.2574 52.0 8.288136 ... 2.802260 37.85 -122.24
3 5.6431 52.0 5.817352 ... 2.547945 37.85 -122.25
4 3.8462 52.0 6.281853 ... 2.181467 37.85 -122.25
... ... ... ... ... ... ... ...
20635 1.5603 25.0 5.045455 ... 2.560606 39.48 -121.09
20636 2.5568 18.0 6.114035 ... 3.122807 39.49 -121.21
20637 1.7000 17.0 5.205543 ... 2.325635 39.43 -121.22
20638 1.8672 18.0 5.329513 ... 2.123209 39.43 -121.32
20639 2.3886 16.0 5.254717 ... 2.616981 39.37 -121.24
[20640 rows x 8 columns]
0 4.526
1 3.585
2 3.521
3 3.413
4 3.422
...
20635 0.781
20636 0.771
20637 0.923
20638 0.847
20639 0.894
Name: MedHouseVal, Length: 20640, dtype: float64
MedInc HouseAge AveRooms ... Latitude Longitude MedHouseVal
0 8.3252 41.0 6.984127 ... 37.88 -122.23 4.526
1 8.3014 21.0 6.238137 ... 37.86 -122.22 3.585
2 7.2574 52.0 8.288136 ... 37.85 -122.24 3.521
3 5.6431 52.0 5.817352 ... 37.85 -122.25 3.413
4 3.8462 52.0 6.281853 ... 37.85 -122.25 3.422
... ... ... ... ... ... ... ...
20635 1.5603 25.0 5.045455 ... 39.48 -121.09 0.781
20636 2.5568 18.0 6.114035 ... 39.49 -121.21 0.771
20637 1.7000 17.0 5.205543 ... 39.43 -121.22 0.923
20638 1.8672 18.0 5.329513 ... 39.43 -121.32 0.847
20639 2.3886 16.0 5.254717 ... 39.37 -121.24 0.894
[20640 rows x 9 columns]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20640 entries, 0 to 20639
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 MedInc 20640 non-null float64
1 HouseAge 20640 non-null float64
2 AveRooms 20640 non-null float64
3 AveBedrms 20640 non-null float64
4 Population 20640 non-null float64
5 AveOccup 20640 non-null float64
6 Latitude 20640 non-null float64
7 Longitude 20640 non-null float64
8 MedHouseVal 20640 non-null float64
dtypes: float64(9)
memory usage: 1.4 MB
None
종료 코드 0(으)로 완료된 프로세스
- 데이터를 뽑아냈으면 시각화해야 한다. 눈에 잘 보이도록 해야 함.
matplotlib.pyplot
- 데이터 분석의 시각화 방법에서 가장 많이 사용되는 라이브러리
- seaborn 같은 다른 다양한 시각화 라이브러리들은 matplotlib를 기반으로 만들어짐
- matplotlib.pyplot 사용해서 데이터 시각화 하기
'''
# matplotlib.pyplot
- 데이터 분석의 시각화 방법에서 가장 많이 사용되는 라이브러리
- 파이썬 오픈소스 라이브러리 중 가장 널리 사용되는 시각화 라이브러리
- seaborn 같은 다른 다양한 시각화 라이브러리들은 matplotlib를 기반으로 만들어짐
- 2002년부터 만들어짐. MATLAB의 기능을 파이썬으로 가져옴
* seaborn
- statistical data visualization based on matplotlib
- 2012년 만들어짐. matplotlib를 더 편하게 사용할 수 있게 만든 라이브러리임!
- numpy, pandas 같은 파이썬 라이브러리를 편하게 시각화하는 것을 중점으로한 라이브러리임
- DataFrame을 직접적으로 지원함
- EDA 단계에서
'''
import matplotlib.pyplot as plt
import numpy as np
# figure라는 도화지 위에 그래프를 그림
plt.figure()
# 라인을 그리는 것이 기본임. 리스트가 하나만 있는 경우 y축임. x축은 인덱스가 들어감
#plt.plot([1, 2, 4, 8, 16, 32])
# 리스트가 두개일 경우는 순서대로 X, y축 리스트값임.
plt.plot([1, 2, 3, 4, 5], [1, 2, 4, 8, 16])
plt.show()
# 막대 그래프 그리기
x = ["Americano", "CafeLatte", "Mocha", "Macchiato", "Affogato"]
y = [1462, 442, 887, 906, 211]
plt.figure(figsize=(8,6))
plt.title("coffee", fontsize=30, loc="left")
plt.grid(alpha=0.5, color="black", linewidth=0.5) #투명도 조절 가능.
plt.xlabel("Menu", fontsize="20")
plt.ylabel("Sales", fontsize="20")
plt.bar(x, y, color="red", label="Sales")
plt.plot(sorted([100, 200, 400, 800, 1600], reverse=True), label="Average")
plt.legend()
#plt.ylim(0, 400) #y축 범위 400까지만 설정
plt.yticks([num for num in range(0, 2000, 100)]) #y축 숫자 범위 조정
plt.show()
# scatterplot()
x = np.random.random(1000) #랜덤 값 샘플링. 정규분포
y = np.random.random(1000)
plt.figure(figsize=(6, 6))
plt.scatter(x, y, color="orange", marker="^")
plt.show()
반응형
'코딩 학원(국비지원)' 카테고리의 다른 글
100일차 코딩학원 (머신러닝) (2) | 2023.06.15 |
---|---|
99일차 코딩학원 (subplot, seaborn) (2) | 2023.06.14 |
97일차 코딩학원 (1) | 2023.06.12 |
95일차 코딩학원 (3) | 2023.06.08 |
94일차 코딩학원 (2) | 2023.06.07 |