16강. 회귀분석 실습 코드

이찬·2023년 9월 9일
0

회귀 TREE & Model Tree

파이썬 enumerate()

  • 인덱스(index)와 원소를 동시에 접근하면서 루프 돌리기

enumerate() 함수는 기본적으로 인덱스와 원소로 이루어진 튜플(tuple)을 만들어준다. 따라서 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자 풀기(unpacking)를 해줘야 합니다.

# 인자 풀기
>>> for i, letter in enumerate(['A', 'B', 'C']):
...     print(i, letter)
...
0 A
1 B
2 C

시작 인덱스 변경

루프를 돌리다보면 인덱스를 0이 아니라, 1로 시작하고 싶을 때가 있습니다. 이럴 때는 enumerate() 함수를 호출할 때 start 인자에 시작하고 싶은 숫자를 넘기면 된다.

>>> for i, letter in enumerate(['A', 'B', 'C'], start=1):
...     print(i, letter)
...
1 A
2 B
3 C
# 행렬에서의 각각의 위치와 값 표기

for r, row in enumerate(matrix):
    for c, letter in enumerate(row):
                   print(r, c, letter)

"""
0 0 A
0 1 B
0 2 C
1 0 D
1 1 E
1 2 F
2 0 G
2 1 H
2 2 I
"""

argsort()

이를 이용해 데이터베이스에서 가져온 서로 다른 테이블의 값을 정렬할 수 있습니다. ndarray의 특성상 서로 다른 타입의 변수들은 하나의 array에 담지 못하기 때문에, 따로 불러온뒤 정렬을 해야합니다.

import numpy as np

a = np.array([1.5, 0.2, 4.2, 2.5])
s = a.argsort()

print(s)
print(a[s])

"""
[1 0 3 2]
[0.2 1.5 2.5 4.2]
"""

두 어레이를 함께 정렬하기

두 개의 어레이에 대해 하나의 어레이를 기준으로 다른 어레이를 정렬할 수 있습니다.

import numpy as np

a = np.array([1.5, 0.2, 4.2, 2.5])
b = np.array([3.7, 2.4, 0.3, 1.9])

s = a.argsort()
a = a[s]
b = b[s]

print(a)
print(b)
"""
[1.5 0.2 4.2 2.5]
[2.4 3.7 1.9 0.3]
"""

s는 어레이 a를 정렬하는 인덱스 어레이 [1 0 3 2]입니다.

b[s]와 같이 사용하면, 어레이 a의 오름차순 순서를 기준으로 어레이 b가 정렬됩니다.

  • 딥러닝은 예측력 => 어떤 feature에 집중해서 결과를 냈는 지를 알 수가 없고 예측 성능만을 올리는 데 집중
  • 머신러닝은 설명력
profile
Kyunghee univ. IE 21

0개의 댓글

관련 채용 정보