본문 바로가기

코딩 학원(국비지원)

98일차 코딩학원

반응형

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