분류 전체보기

    [프로젝트] numpy, pandas로 신경망 구현하여 프로야구 순위 예측하기

    [프로젝트] numpy, pandas로 신경망 구현하여 프로야구 순위 예측하기

    1. 들어가기전에 내 코딩실력에 환멸을 느껴서, 가벼운 프로젝트부터 진행하고자 했다. 우선 해당 글을 참고하여 신경망을 스크래치로 구현하기로 마음먹었다. 그렇다면, 좀 더 흥미로운 주제를 하면 재밌을것 같아서 스탯티즈를 참고하여 각팀의 타율, 출루율, 장타율, 방어율, FIP, WHIP를 활용하여 프로야구 순위를 예측하는 프로그램을 만들기로 했다. 2. 뉴럴 네트워크 구성 위와 같이 뉴럴 네트워크를 구성하였다. 인풋 레이어와 히든 레이어 2개를 거치고 softmax 연산을 통해 최종 확률을 계산하게 된다. loss function은 cross entrophy를 사용하였고, activation function은 sigmoid를 사용하였다. 3. 코드 살펴보기 3가지 파일로 구성된다. main.py: 메인 ..

    [IT 도서 리뷰] 읽기 좋은 코드가 좋은 코드다 (Part. 2)

    Part 2. 루프와 논리를 단순화하기 루프는 중요하다. 언어를 배울 때 생각하면 if, for, while 문 등을 제일 처음에 배우지 않는가. 이들이 모여 루프가 되고 논리가 된다. 코드는 수많은 루프와 논리로 이루어져 있고 이것만 단순화해도 좋은 코드가 될 것임이 자명하며 해당파트에서는 이 부분을 다뤘다. 7. 읽기 쉽게 흐름제어 만들기 part 1에서 일관성이 중요하다고 했었다. 읽기 쉽기 위해서 여기서도 적용된다. 그에 대한 예시는 다음과 같다. # 왼쪽이 검사를 수행하는 대상 / 오른편은 비교대상 (고정값) while (bytes_received < bytes_expected): ''' ''' if와 else에 대한 순서도 주목할 수 있다. if에 어떤 조건을 넣느냐에 따라 읽기 쉬운 코드가 ..

    [백준] 외판원 순회 2(10971번) - 파이썬(Python)

    https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다...

    [백준] 다음 순열(10972번) - 파이썬(Python)

    https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 문제 1부터 N까지의 수로 이루어진 순열이 있다. 이때, 사전순으로 다음에 오는 순열을 구하는 프로그램을 작성하시오. 사전 순으로 가장 앞서는 순열은 오름차순으로 이루어진 순열이고, 가장 마지막에 오는 순열은 내림차순으로 이루어진 순열이다. N = 3인 경우에 사전순으로 순열을 나열하면 다음과 같다. 1, 2, 3 1, 3, 2 2, 1, 3 2, 3, 1 3, 1, 2 3, 2, 1 입력 첫째 줄에 N(1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄에 ..

    [IT 도서 리뷰] 읽기 좋은 코드가 좋은 코드다 (Part. 1)

    들어가기 전에 작년 부스트캠프를 진행하면서 추천받았던 책이다. 코딩실력에 대한 자괴감을 느껴 코딩을 다시한번 제대로 해보려는 찰나의 나에게 어울리는 책이다. 챕터별로 느낀점을 정리하고 총평으로 마무리하겠다. 1. 코드는 이해하기 쉬워야 한다. 이 챕터는 어떠한 파트에도 속해있지 않다. 당연하면서도 중요한 얘기라서 그럴지도 모른다. (느낌상으론 열역학 제 0법칙 같다.) 다른 사람의 코드를 볼때나 심지어 과거의 내가 짠 코드마저도 이해가 안될 때가 있다. 아니... 정말 많다. 개인적으로는 알고리즘 문제풀 때 많이 느꼈다. 1년전의 코드를 보고 어...왜이렇게 짰지 싶은...(물론 그동안 성장한걸지도) 주 언어로 파이썬을 쓰기 때문에, 파이썬 생각이 많이 났다. 파이썬은 파이써닉한 코드를 지향하는데, 리스..

    [전처리] 데이터 스케일링

    1. 스케일링 하는 이유 데이터별로 값들의 범위가 다양하게 존재할 수가 있다. 예를 들어, 값이 대체로 큰 데이터와 값이 대체로 작은 데이터가 존재한다. (ex. 키와 몸무게) 이러한 경우에는 같은 값이라도 서로 다른 영향을 미치게 될 것이고 이는 학습에 악영향을 줄 수 있다. 따라서, 스케일링을 통해 각 칼럼이 비슷한 범위를 가지도록 하여 문제를 해결할 수 있다. 2. 스케일링 종류 및 특징 스케일링은 보통 표준화(Standard Scaler) · 최소-최대 스케일링(Min-Max Scaling) · 로버스트 정규화(Robust Scaler) 이렇게 3가지가 있다. 2-1. 표준화(Standard Scaler) $$Z = \frac{X_i - mean(X)}{sd(X)}$$ 데이터를 표준화된 정규분포꼴..

    [통계] 공분산과 상관계수

    1. 들어가기 전에 머신러닝을 공부하다가, 판다스에서 상관계수를 계산해주는 코드를 작성하였다. import pandas as pd url = "" data = pd.read_csv(url) data.corr() 피어슨, 스피어만과 같은 상관계수는 많이 들어봤는데 판다스에서 default로 어떤 상관계수를 쓰고 어떤 상관계수들을 받고 각각 특징이 궁금해졌다. 우선, 공식 홈페이지를 살펴본 결과, 피어슨 상관계수를 default로 사용한다. 그리고 피어슨, 켄달, 스피어만 상관계수를 사용할 수 있다. 상관계수를 이해하기전 공분산을 이해하는 것이 필수이므로 공분산을 알아본 뒤, 상관계수의 정의를 살펴보고 각각 특징을 알아보자. 2. 공분산 정의 2개의 확률변수의 선형 관계를 나타내는 값이다. (출처: 위키피디..

    20220628_TIL

    멘탈 관리 천인우님 영상보면서 참 배울게 많은 사람이라고 느꼈다. 두려움이 많아지는 요즘인데, 멘탈관리잘하면서 열심히 노력해야겠다. 아래는 기억할만한 내용들이다. 1. 아침에 최대 3가지 목표 세우기 -> 너무 많은 걸 하려하지마라. 우린 인간이다. 2. 나보다 일잘하는 사람의 시간을 훔쳐라 -> 경쟁이라 생각하지 말것. 상생이다. 이기겠다보다 배우겠다는 마인드로 접근. 3. 미국에서는 못알아듣게하면 본인 책임 / 한국은 보통 왜 못알아듣냐고 함 4. 단기적으로는 비관론자, 장기적으로는 낙관론자 p.s. 컨텍스트 스위칭 얘기나오는데, 역시 천상 개발자... 작년 초 취준시작할때를 생각하자. bfs/dfs에 대한 개념도 없을 시절말이다. 처음엔 힘들었지만 수많은 노력끝에 온전히 내것으로 만들었다. 그렇게 ..

    20220626_TIL

    알고리즘 감각 유지 https://lottegiantsv3.tistory.com/99 소코반(4577번) - 파이썬(Python) https://www.acmicpc.net/problem/4577 4577번: 소코반 소코반은 1982년에 일본에서 만들어진 게임으로, 일본어로 창고지기라는 뜻이다. 이 게임은 캐릭터를 이용해 창고 안에 있는 박스를 모두 목표점으로 lottegiantsv3.tistory.com

    [백준] 소코반(4577번) - 파이썬(Python)

    [백준] 소코반(4577번) - 파이썬(Python)

    https://www.acmicpc.net/problem/4577 4577번: 소코반 소코반은 1982년에 일본에서 만들어진 게임으로, 일본어로 창고지기라는 뜻이다. 이 게임은 캐릭터를 이용해 창고 안에 있는 박스를 모두 목표점으로 옮기는 게임이다. 목표점의 수와 박스의 수 www.acmicpc.net 문제 소코반은 1982년에 일본에서 만들어진 게임으로, 일본어로 창고지기라는 뜻이다. 이 게임은 캐릭터를 이용해 창고 안에 있는 박스를 모두 목표점으로 옮기는 게임이다. 목표점의 수와 박스의 수는 같다. 플레이어는 화살표(위, 아래, 왼쪽, 오른쪽)를 이용해 캐릭터를 아래와 같은 규칙으로 조정할 수 있다. 캐릭터에게 지시한 방향이 빈 칸(박스나 벽이 아닌 곳)인 경우에는 그 칸으로 이동한다. 지시한 방향에..