요약/나만의 인사이트
- .split() : 문자열을 구분자로 나눠 리스트에 하나씩 담기
text = 'banana apple kiwi pineapple orange'
answer = text.split() #()안에 아무것도 없으면 공백 기준으로 나눠서 리스트에 담음
print(answer) #['banana', 'apple', 'kiwi', 'pineapple', 'orange']
- 머신러닝 순서
-
- 라이브러리 import
- 변수선언(X - 다차원(df)) (y -1차원(serise))
- 학습
- 예측
- 평가
- 머신러닝을 하려면 모든 문자는 숫자로 변환시켜줘야 한다. (컴퓨터가 읽을 수 있도록)
새롭게 알게 된 것
SOL MOD 함수
- 개념: 두 숫자를 나누었을 때 발생하는 나머지를 반환하는 함수 MOD(10, 3) = 1
- 활용: 홀수인 아이디만 조회 WHERE MODE(ID, 2)=1
- 참고: MOD(Modulo) : 나머지 연산
머신러닝1(선형회귀)
- 분야별 통계와 머신러닝의 활용
- 선형회귀(선 / 하나의 트렌드(선)으로 돌아간다.)
머신러닝2(랜덤포레스트)
- 분류 - 카테고리를 맞추는 것
- 랜덤포레스트 아이디어 - 의사결정 나무 (if-else 조건문과 같음)
- 의사결정나무는 트리 모양이 매번 실행될 때 마다 달라짐
- 복원추출(꺼냈다가 다시 확인하고 넣기)
- 랜덤 포레스트 - 복원추출, 표본 여러개, 모델링, 다수결원칙 - 즉 부트스트랩핑 + 어그리게이깅 = 앙상블(배깅)
- 랜덤 포레스트 성능평가 - 정확도, 정밀도, 재현율, f1-score
- 인코딩은 컴퓨터가 이해할 수 있는 숫자로 변환하는 것
- 범주형 데이터는 무조건 인코딩이 필요하다.
- 인코딩 종류는 레이블 인코딩, 원핫인코딩 2가지 이다.
- 레이블인코딩은 순서가 있는 자료형에서 (사이즈, 성적)
- 원핫인코딩은 순서가 없는 자료형에서 (지역, 등) 하면 된다.
파이썬
용어정리
- 모듈: 변수, 함수 클래스 등을 모두 모아둔 py파일 (ex 수학 공식이 담긴 모듈)
- 패키지: 여러 모듈을 묶은 폴더 (ex 수학. 과학 모듈을 모은 이과 패키지)
- 라이브러리: 여러 모듈/패키지를 모아 제공하는 외부 기능 모음집 ( ex 이과, 문과 패키지 모음집)
- 프레임워크: 다 합쳐진 하나의 간단한 서비스 정도의 규모
# 표준 라이브러리 -> python 설치하면 자동으로 설치 되는 것
# 외부 라이브러리 -> pip이나 다운로드를 통해 설치하는 것 (ex 판다스)
defaultdict
- 딕셔너리의 특별한 버전
- 일반 딕셔너리는 키가 없으면 오류(KeyError)가 남
- defaultdict은 키가 없으면 자동으로 기본값을 만들어서 넣어줌.
예제
문제 1 (defaultdict(list))
설명: 여러 학생의 과목별 점수가 주어집니다.
과목별로 점수 리스트를 저장하는 딕셔너리를 만드세요.
- 키가 없으면 자동으로 빈리스트가 생성해서, 사용자가 그 리스트에 값을 추가할 수 있게 해준다.
scores = [('math', 90), ('eng', 80), ('math', 70), ('eng', 95), ('hist', 85)]
from collections import defaultdict
d = defaultdict(list) #값이 없으면 빈 리스트를 자동 생성
for key, value in scores:
d[key].append(value)
print(d)
#defaultdict(<class 'list'>, {'math': [90, 70], 'eng': [80, 95], 'hist': [85]})
문제 2 (defaultdict(int))
설명: 과일별 판매 수량 리스트가 주어집니다.
과일별 총 판매 수량을 구하세요.
- 키가 없으면 자동으로 0이 할당되고, 여기에 값을 누적해서 더한다.
sales = [('apple', 3), ('banana', 2), ('apple', 4), ('banana', 1), ('kiwi', 5)]
from collections import defaultdict
d = defaultdict(int)
for key, value in sales:
d[key] += value # += 연산자로 누적하기
print(d) #{'apple': 7, 'banana': 3, 'kiwi': 5})
문제 3 (defaultdict(set))
설명: 각 학생이 들은 과목 리스트가 주어집니다.
과목별로 수강하는 학생 이름을 집합(set)으로 모으세요.
- 값이 없으면 빈 set 형성
students = [('Alice', 'math'), ('Bob', 'eng'), ('Alice', 'eng'), ('Charlie', 'math'), ('Bob', 'math')]
from collections import defaultdict
d = defaultdict(set) #값이 없으면 빈 set 형성
for student, subject in students: #변수 2개로 자동분해 = 튜플 언팩킹 (리스트 안에 튜플이 여러개 있어도 언팩킹 할 수 있다.)
d[subject].add(student) #과목별로 학생 이름을 set에 추가
print(d) # {'math': {'Alice', 'Charlie', 'Bob'}, 'eng': {'Bob', 'Alice'}}
다음에 적용해 볼 것
sklearn 정리
'기타 > Python' 카테고리의 다른 글
| 250715_파이썬(enumerate 코드타카 풀이) (0) | 2025.07.15 |
|---|---|
| 250711_파이썬(순열과 조합), 데이터분석의 흐름 (1) | 2025.07.11 |
| 250703_파이썬(길이 N의 부분문자열 뽑기), visual studio code 가상환경 설정 (4) | 2025.07.03 |
| 250628_판다스(조회, 정렬, 조건필터, 통계, 복사와 결측치) (1) | 2025.06.30 |
| 250618_SQL변수선언 @hour / 파이썬 for if if (0) | 2025.06.18 |