기본 콘텐츠로 건너뛰기

SW) 머신러닝과 딥러닝 특론 5주차 (오경선교수님) - 리스트, 판다스, 넘파이, 사이킷런, 선형회귀, 다중선형회귀 등등

 1. 리스트로 만드는 2차원 세계!!!

코랩 링크 : https://colab.research.google.com/drive/199MmXCw4ejktCyw3lGbjE3RHS5BR7fkY?usp=sharing

   ## **리스트로 만드는 2차원 세계!!!!!!!!!!!!!!!!!!!!!!!!!**

데이터프레임(판다스 말인듯)으로 불러와도 
결국 넘파이 배열로 바꿔서 리스트 형식으로 하게 될테니까
이거 잘 알아둬야 한다고 한다.
리스트 안에 리스트들이 만드는 2차원의 개념을 잘 알아두라고 한다.

코드
X=[['홍','유'],[100,300]]
print(X)
#X에서 제로는 홍유가 들어간 리스트 덩어리
X[0]
print('X[0]:{}'.format(X[0]))
# 홍만 뽑고 싶으면
print('X[0][0]:{}'.format(X[0][0]))

출력
[['홍', '유'], [100, 300]] X[0]:['홍', '유'] X[0][0]:홍


행렬을 안다면 이런 표 그림 설명도 좋다고 한다.
-----------------------------------------
2. 판다스 (아주 궁금하다)
데이터 전처리를 NumPy, pandas library 로 한다고 함.
행과 열로 구성이 되어있는 데이터 프레임 타입 데이터를 입력, 처리, 조작할 때
판다스를 쓴다. cvs파일을 불러와서 행과 열의 데이터 프레임으로 구성해주는 것!!!
함수는 read.csv !!!
import pandas as pd
pd.read.csv(파일이름.csv)

에구 다 날라갔네
(하여간 포인트는 결측값제거, 결측값 특정값이나 평균값으로 채우기, 카피 등을 했을 때
새 변수 (새 이름)에 저장하지 않으면 반영이 안된다 였다.
https://blogs.nvidia.co.kr/2020/02/27/intuitive-ai-schools-you-on-recycling/
-----------------------------------------
3. 넘파이
판다스로 불러온 행열값의 "계산"을 위한 라이브러리!


1) 가장 많이 사용하는 것은 unipue!!!!!!!!!!!!
유일한 원소로 정렬해준다.
len(np.unique(list(df.Name))
names=list(d.Name)
for i in range(len(names)):
names[i]=names[i].split*'',1)
#공백이 여러번 나오지만 한 번만 분할 하겠고
name[0] 값을 name[i]에 저장해줘
# 나: 성을 떼어 저장하는 건가보넹??
clean_data.Name=names
clean_data.head()
len(np.unique(list(clean_data.Name)))


2) 실습
import numpy as np
a=[1,1,1,1,3,4,4,5,9,3,3,6,6]
print(np.unique(a))
# 출력
[1,3,4,5,6,9]
# 이렇게 중복 값 처리 + 순서대로 정렬 됨
print(np.mean(a))
# a자리가 배열이어야 하는 자리임!

4. 사이킷런
선형회귀에 필요한 것!! (liner regression)
학습 알고리즘을 갖고 오고 fit으로 학습까지 시킨다.
코랩링크
https://colab.research.google.com/drive/1hhATWqwaubP5MSK59H8JlfOHWu3yFvsa?usp=sharing

5. matploib
시각화 그래프화!!
import matplotlib.pyplot as plt
# plt.plot[1,2,3,4,5]  하나만 쓰면 y값이 디폴트
# plt.plot([2,3,4,5],[6,7,8,9]) # 두 개 다쓰면 앞이 x 뒤가 y 값
# TIP 스캐터는 산점도 여기에 트레인 인풋, 타겟 이런 거 넣으면 매칭값이 보임
# TIP 플롯은 방정식 그래프 그리기 
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[1,4,9,16])
plt.ylabel('y-label')
plt.show
plt.scatter([2],[4],marker='^')

y 아규먼트 어쩌구 오류가 나서 여쭤보는 중

코랩링크
https://colab.research.google.com/drive/1hhATWqwaubP5MSK59H8JlfOHWu3yFvsa?usp=sharing

6. 선형회귀
1) 
원인 과 결과 로 예측하기
과거 재배면적 - 가격 데이터
현재 재배면적 - 가격 ? 예상
(햄스터가 말한 주식 얘기 생각남)

2) 여러변수가 관계를 대표하는 하나의 선을 찾는 것!
단순선형회귀 
다중선형회귀 (3개 이상의 독립변수! 1개의 종속변수!)

x값이 예측변수, 독립변수이고
y값이 결과, 반응, 종속변수 예측하려는 변수

예 
감기와 기온간의 관계가 있나.

3) 엄밀히는지도학습이다!!!

4) 온도 값 데이터를 x값에 감기 환자수를 y 값에 저장한다.
    사이킷런의 linear regressiong 클래스로 모델 생성하고
    fit 써서 훈렌하고
    predict로 예측한다.

5) 실습
#-------------------판다스로 데이터를 행렬로 저장하기
import pandas as pd
temp_predict=pd.read_csv('/content/선형회귀1 - 복사본.csv')
temp_predict  # 교수님이 주신 파일이 좀 다르고 하여간 칼럼명에 한글 있으면 깨져서 대충 써넣었다.
CSV파일명이 한글인 것은 상관 없다.
#-------------------이제 넘파이를 쓴다.
import numpy as np
train_input=temp_predict[['temp']].to_numpy()  
train_target=temp_predict[['couny']].to_numpy()
# 이게 궁금했던 부분 같다. 
# 판다스로 불러와서 넘파이로 저장하는 것은
# 판다스 프레임의 인덱스번호나 인덱스 키로 부른다음 투 넘파이 하기
# [[]]왜 두 개쓰지? 하나만 있으면 하나의 리스트가 되긴한다.(질문 중)

스코어 얘기가 나왔는데
1에 가까워야 하고
0이면 별로
심지어 0밑이면 아주 별로
https://jfun.tistory.com/81



6. 다중선형회귀
선형회귀와 코드만으로는 큰 차이가 없다.
독립변수가 여러 개라 더 흥미로운 편인 것 같다.
https://colab.research.google.com/drive/1hhATWqwaubP5MSK59H8JlfOHWu3yFvsa?usp=sharing

댓글

Creative Commons License