본캠프/TIL ♨

[42일차] 통계와 파이썬 학습, 머신러닝 1주차 학습, 주기적복습

yssummer 2025. 4. 9. 23:40

250409

 

🐱‍👤 하루 요약
1.지금까지 한 것: 통계야 놀자 복습, 베이직반 문풀, 머신러닝 강의 1주차
2. 앞으로 할 것: 파이썬 베이직반 문풀, 통계야놀자 복습, 머신러닝 2주차 듣기

 


 

😊진행상황

🔵통계야놀자 4회차 라이브세션 듣고 복습. 오늘껀 약간 난이도 있게 느껴짐.

 

🔵파이썬 basic반 2회차때 과제 다시풀고 해설강의

 

모든 문제를 풀 때는 알고리즘 분석부터 해야됨.

과제리뷰:

시간변환기 같이 해주심.

#사용자로부터 초를 입력받기

seconds_input = int(input())

 

피라이드 문제는

공백의 갯수도 세야함.

공백 4개 출력하고 별 하나,

공백은 43210 되고 별은 13579 됨

이 규칙을 찾아야함.

#3. 피라미드

N = 5

for i in range(1, N+1) :

space = ’ ’*(N-i)

star = ‘’ “ (2i-1)

print(space + star )

이렇게 해도 되고

프린트 안에 아래처럼 한번에 써도 됨

print(’ ’(N-i) + ‘’ “ (2*i-1))

마름모는 처음 세 줄은 피라미드 하고

밑에 두줄은 위에 두줄을 거꾸로 그리면 되는 것임.

 

#4. 마름모
N = 5

# 마름모의 상단
for i in range(1, N+1)

# 마름모의 하단
for i in range()

 

#5. 중첩 사각형

처음과 끝만 별이 5개고 나머지는 
가운데만 공백⇒ 공백이 n-2 인게 규칙임.

 

조건문 반복문 부분에서 4번 문제 같이 해보기로.

 

#1. 숫자 사각형 패턴 출력하기

rows - 4
cols = 5

반복문 두개 필요 중첩반복문 필요

for r in range(rows) : #행을 담당
	for c in range(cols) : #열을 담당
		print(f"{num:02}", end=" ")
		num += 1 # 열이 끝나야 계행을 한다. 
		#열이 끝난다는건 포문이 끝난다는것임.
		#그래서 계행은 포문이 끝나는 지점에
	print() #여기에 써줘야한다.
#2. 지그재그 숫자 사각형

rows - 4
cols = 5

num = 1

for r in range(rows) : #행을 담당
	#짝수행 (1씩 증가)
	if r % 2 == 0 :
		for c in range(cols) : 
			print(f"{num:02}", end=" ")
		num += 1 
		
	else : #홀수행 (1씩 감소)
		for c in range(cols) : #열을 담당
		print()
	print() #여기에 써줘야한다.

 

 

문제 5는 둘 다 못푼 사람이 많아서 둘다 풀어주셨음.

 

1~10 을 넣었는데 1,2,3,5,7 이 나와요

지금같은 상황에서는 1이 나올 수밖에 없다.

이런것도 기법이니까 기억해야함

 

#5개 출력 후 개행

if (i+1) % 5 == 0 :

print()

과제풀이는 여기서 마무리.

 

이론시간으로 넘어감.

 

문자열과 자료구조.

자료구조 굉장히 중요

메서드를 공홈에서 찾아보고 쓸 수 있도록 하면 좋다.

문자열에 대한 내용 배웠음.

그다음 리스트에 대한 내용으로 넘어감

굉장히 많이 쓰게 됨.

리스트는 파이썬에서 많이 쓰이는 자료구조로 순서가 있고 변경가능하다

#값이 있는 리스트 생성

대괄호를 사용해서 생성을 한다

[ ]이렇게 쓰던지 list()이렇게 쓰던지.

#중첩 리스트 (2차원 리스트)

#2차원 리스트 이쁘게 출력

행렬처럼 접근하려면 pprint라고 하는데 기억하면 좋다

리스트 럼프리헨션은 생성하는 기능

어떤 숫자의 1부터 5까지 제곱을 만들고 싶다 — 이런거 해줌

 

 


🔵머신러닝 1주차 강의 완 : 뒷전이다가 담임매니저님이 알려주셔서 저녁에 시작 ㅎ

 

    주요 내용 요약

 

인공지능(AI)

사람의 지능적인 작업을 기계가 수행하도록 만드는 광범위한 개념

 

머신러닝

AI를 실현하기 위한 방법 중 하나로, 데이터로부터 특징이나 규칙을 찾아내서 학습 하는 것

ex) 스팸 메일에는 특정 단어나 형태가 자주 등장하는 공통점(패턴)이 있을 수 있는데 이를 자동으로 스팸으로 분류

 

딥러닝(Deep Learning)

머신러닝의 하위 분야로, 사람의 뇌신경을 본 떠 만든 인공신경망으로 이루어져 있음.

인공신경망을 여러 겹 쌓아서 복잡한 정보를 학습할 수 있음

ex) 오늘날 많이 유명한 모델들이 여기에 속함 : ChatGPT, 알파고, 알파스타, DALL-E

 


 

🔵주기적 복습 + 오후스크럼

 

주기적 복습

  3일 전: 파이썬 2회차 강의 이론 복습

  7일 전: 통계야 놀자 1회차 강의 복습

  1달 전: 파이썬 기초 라이브세션 1.5회차꺼 강의 복습

df4= pd.DataFrame(data1, columns=[’Name’, ‘Age’])  

df. T 하면 가로세로가 바뀜.

df.where()

얘가 where절의 역할을 함

파이썬에서도 기본내장함수로 웨어가 있긴 하지만 기능이 다르다

에스큐엘은 만족하는 애들만 출력했다면

만족 안하는 행을 nan이라고 반환해준다

그래서 where 말고 다른 기능을 쓰기도 함

마스크 메서드라는 것이다

조건을 씌운다라는 뜻

이건 nan이 안나옴.

 

코드 복붙보다는 손으로 최대한 쳐보는 게 좋다.


# 특정 컬럼 1개 가져오기
	#방법1: 속성. 사용
	df.Category
	
	#방법2: [] 연산자 사용
	df['Category']
	
	#방법3: iloc 사용
	# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번(카테고리)컬럼을 가져오겠다는 희미
	df.iloc[:,4]

# 특정 컬럼 여러개 가져오기 
	#방법1: [[]] 연산자 사용
	# []를 하나 사용하면 결과값이 series 형태로 반환되어 key error 가발생되며, [[]] 는 dataframe 으로 반환되어 에러가 나지 않습니다. 
	df[['Category','Selling Price']]
	
	#방법2: iloc 사용
	# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번,7번 컬럼을 가져오겠다는 희미
	df.iloc[:,[4,7]]
	
# 특정 컬럼 버리기
# axis=0 은 인덱스 기준, 1은 컬럼 기준 삭제를 의미 
# inplace=True 는 원본을 변경하겠다는 의미, False 의 경우 원본테이블은 변경되지 않음
df3.drop('Interaction type', axis=1, inplace=True)

# 조건에 부합하는 데이터 가져오기1
# 조건에 만족하는 행은 정상출력 ,아닌 행은 NaN 으로 반환 
df2.where(df2['Age']>50)

# 조건에 부합하는 데이터 가져오기2
# true, false의 개념이 아닌 조건에 부합하는 데이터만 슬라이싱하여 가져오고 싶을 때 
# mask 메서드로 불립니다. 이름은 반드시 mask 일 필요가 없습니다. 
mask = ((df2['Age']>50) & (df2['Gender']=='Male'))
df2[mask]

# 조건에 부합하는 데이터 가져오기3
# 데이터프레임명[조건] 을 사용하면 조건을 만족하는 행만 필터링됩니다.
df2 = df2[df2['Age']>50] 

# 조건에 부합하는 데이터 가져오기4
# loc[]을 활용한 조건 필터링
df2 = df2.loc[df2['Age']>50]

# 데이터 그루핑- 기준 1개
df2.groupby('Gender')['Customer ID'].count()

# 데이터 그루핑- 기준 여러개
df2.groupby(['Gender','Location'])['Customer ID'].count()

# 데이터 count 와 nunique(distinct, 중복제거) 차이 
df2.groupby('Location')['Age'].count()
df2.groupby('Location')['Age'].nunique()

조건을 명명할 때는 소괄호, 씌울때는 대괄호 지켜줘야함

mask = ( 어쩌구 & 어쩌구 )

df.[mask]

이렇게 쓴다.

 

그룹핑 설명

 

이 기준을 통해서 연산을 하시는 것이기 떄문에 구문에 넘어갈 때 점이 없다

이거는 외워도 된다 예외가 없기 떄문에

점을 쓴다는 거는 함수 쓴다, 컬럼은 작은 따옴표 안에 들어간다는 거고 그들 사이에는 점이 없다는 게 중요

 

 

근데 문제는

과제를 풀려고 해도 기본적으로 써져있는 파이썬 코드가 이해가 안된다 . 예를 들면 이런거.

--라고도 적어놨었네 ㅋㅋㅋ

def solution(strings, n):
    a = []
    answer = []
    for i in strings:
        a.append(i[n])
    b=set(a)
    strings.sort()
    for k in b:
        for string in strings:
            if string[n] == k:
                answer.append(string)
    return answer

 

for 문 아직도 잘 못함 ㅋㅋ. 내일은 이 부분 할거지롱

 

 

🔵오후스크럼

 

에서 팀원들과 카이제곱검정에 대해서 이야기를 나눠서 복습이 된 듯. 

이 블로그도 참고하게 됨.

왜냐면

양파 - 적합도...그게 뭔데

이슈가 있었기 때문.

ㅋㅋㅋㅋ

https://free-chicken-forever.tistory.com/109

 

+ 종료하기까지 팀원들과 수다 2시간 ㅋㅋㅋ

낼부터는 더 많이 만나기로~

 

 

끝.