분류 전체보기

    MachineLearning_분류(Classification)

    MachineLearning_분류(Classification)

    시각화 패키지인 맷플롯 라이브러와 시본을 이용한다. heatmap 함수를 이용하여 상관 계수 행렬을 히트맵으로 나타낸다. 각 변수 산의 상관 계수를 다른색으로 표현하고, annot 옵션은 숫자 표시 여부를 지정한다. 목표 변수의 클래스(0,1,2)에 따라 분포에 차이가 있다. 특히 sentosa 품종의 꽃받침 길이가 짧은 편인데, 모델학습에 고려해야하는 유일한 피쳐이다. 나머지3개의 피처에 대해서도 품종별 분포를 시각화해본다. sepal_width 부분을 보면, sentosa 품종이 다른 두 품종에 비해 오른쪽으로 분포되어 있었고, petal_length나 petal_width를 보아도 sentosa 품종이 다른 두 품종에 비해 큰 차이가 있음을 확인할 수 있다. 시본 pairplot을 통해 서로 다른 ..

    Machine Learning_일차함수 관계식 찾기

    Machine Learning_일차함수 관계식 찾기

    구글 코랩을 통해 실습을 준비하였다. 리스트 x,y에 각각 10개의 숫자를 원소로 갖도록 하였다. 그리고 맷플롯 라이브러리 패키지를 통해 입력값으로 x변수와 y변수의 데이터를 전달하여 그래프를 화면에 표시한 결과이다. 오른쪽은 데이터 전처리 과정이다. 판다스 함수에 딕셔너리 형태로 입력하여 데이터프레임을 만들었다. 데이터 프레임의 shape 속성을 보면 10행 2열 구조인것을 확인 가능하다. 그리고 head 메소드는 데이터 프레임의 첫 5개 행을 추출해서 표시하고, tail 메소드는 뒤 5개 행을 추출해서 표시한다. 그 다음은 모델 학습이다. 사이킷런 패키지의 linear_model 모듈에서 LinearRegression 클래스 함수를 불러왔다. 이 함수는 선형회귀 모델을 구현해 놓은 코드이다. 모델 인..

    Machine Learning_데이터 전처리

    Machine Learning_데이터 전처리

    올바른 결과를 도출하기 위해서는 데이터 전처리 과정을 거쳐야한다. 넘파이로 데이터를 준비하고 사이킷런으로 훈련 세트와 테스트 세트를 나누어주었다. 데이터 전처리 전에 나오는 결과에서 오류를 찾고, k-최근접 이웃을 이용하여 산점도를 다시 그려보고 기준을 수정하였다. 왼쪽은 데이터 전처리 작업을 하기 전, 오른쪽은 전처리 작업을 한 후로 나타난 결과이다. 다음은 표준점수를 통해 전처리를 하는 방법이다. 훈련 세트를 mean으로 빼고 std로 나누어 주었기 때문에 값의 범위가 달라져 샘플 하나가 혼자 덩그러니 놓여져있는 상태이다. 코드를 수정한 후, 결과를 보면 산점도와 거의 동일하다. 하지만 x축과 y축의 값이 크게 변한 것을 볼 수 있다. 테스트세트도 훈련 세트의 평균과 표준편차로 변환해야한다. 테스트 ..

    Machine Learning_훈련 세트와 테스트 세트

    Machine Learning_훈련 세트와 테스트 세트

    머신러닝 알고리즘의 성능을 제대로 평가하기 위해서는 훈련 데이터와 평가에 사용하는 데이터가 각각 다르게 준비되어야한다. 가장 간단한 방법 중 하나는 평가를 위한 데이터 셋을 따로 준비하거나 이미 준비된 데이터 중에서 일부를 떼어내어 쓰는 것이다. 평가에 사용하는 데이터를 테스트 세트, 훈련에 사용되는 데이터를 훈련 세트라고 한다. 앞의 35개의 데이터는 도미, 뒤의 14개는 빙어에 대한 데이터이다. 주의할 부분은 슬라이싱 연산을 사용하면 마지막 인덱스의 원소는 포함되지 않는다는 것이다. 훈련 데이터를 앞의 35개 데이터로, 테스트 데이터를 뒤의 14개 데이터로 할 경우 , score() 함수를 통해 정확도 결과를 보면 0.0이 나온다. 앞에 35개의 데이터를 담고 있는 훈련 데이터셋이 모두 도미의 데이터..

    [pwnable.kr] 1번_fd 풀이

    [pwnable.kr] 1번_fd 풀이

    포너블 1번_fd 문제 풀이 먼저 맨 아래 ssh gd@pwnable.kr -p2222를 통해 접속해야하는 것 같다. 비밀번호는 guest를 입력해주었다. 처음에 여기서 더 어떤걸 해야하는지 모르겠어서 어떤 파일이 있는지 확인해보려고 ls 명령어를 입력했다. fd, fd.c, flag 파일 총 3개가 있었다. fd.c와 flag의 경우 root 권한이기 때문에 확인할 수 fd를 실행해보았다. ""pass argv[1] a number"이라는 문구가 떴다. 숫자를 함께 입력해야 하는 것 같다. fd.c는 권한이 거부되어서 cat으로 내용을 확인해보았다. fd = atoi(argv[1]) - 0x1234 부분이 중요해보인다. fd 값이 read함수에서 fd가 0이면 표준입력, 1이면 표준 출력, 2이면 표준..

    Machine Learning_k-최근접 이웃 알고리즘

    Machine Learning_k-최근접 이웃 알고리즘

    생선 분류 문제를 통해서 K-최근접 이웃 알고리즘을 실습해보았다. 시장에서 여러 생선이 있는데 어떤 생선이 도미와 빙어인지 구분하지 못하는 상황이다. 따라서 생선의 길이와 무게의 데이터 셋을 가지고 도미를 찾아내는 실습 문제였다. 2개의 클래스 중 하나를 고르는 문제로 이진 분류이다. 도미 35마리와 빙어 14마리의 데이터 셋을 준비하였다. 생선 데이터 셋은 캐글에서 공개된 데이터셋을 사용한다. bream은 도미, smelt는 빙어이다. 파이썬에서 matplotlib 맷플롯립 패키지를 통해 과학 계산용 그래프를 그린다. 그리고 scatter()함수를 통해 산점도를 그린다. 도미의 경우에는 파란색 점으로 표시되었고, 빙어는 주황색 점으로 다르게 표시되었다. 점의 모습이 선형인 걸 확인할 수 있다. k-최근..