반응형

전체 글 226

[Python] 머신러닝 기초-5 선형회귀(Linear Regression) 알고리즘을 통한 연습 / 선형회귀란? 다항회귀란?

지금까지는 K-최근접 알고리즘을 통해 모델을 만들었고, 그 모델로 예측을 해보았다. 하지만 어느일정 길이를 넘어서면 예측되는 무게가 다 똑같이 나오는것을 봤을것이다. 이것은 가장 근접한 클래스의 평균을 내서 주는 최근접 알고리즘의 엄청난 단점이다. 이런점을 해결하기 위해 가장 보편적으로 사용하는것이 선형회귀 알고리즘이다. 선형회귀란? - 데이터를 가장 잘 표현할수 있는 직선을 구하는 알고리즘 우선 코드로 선형회귀 알고리즘을 한번 적용시켜 보자 1). 데이터 형변환 2). 선형회귀 알고리즘 사용하여 필요한 값을 구한다. 일차방정식 y = ax+b 여기서 선형회귀를 사용할때 종종 H(x) =Wx+b를 사용해서 표현했는데, 나도 이걸로 표현하겠다. Linear Resgression을 사용하면 그 객체 안에 W..

[Python] 머신러닝 기초-4 K-Neighbors (최근접)알고리즘을 통한 연습- 회귀

분류 : 샘플을 몇개의 클래스 중 한가지로 분류(확인 해내는것) 회귀 : 기존 데이터를 통해 임의의 데이터를 예측하는것 분류 문제를 통달했으니, 회귀 문제로 넘어가보자. 바나나의 길이에 따른 바나나의 무게를 예측하는 코드를 한번 작성해보자 1). 바나나 길이와 무게 데이터를 정의한다. 그래프로 확인 2). 사이킷런을 사용하려면 데이터의 형태가 2차원이어야함으로, 우리가 가지고있는 데이터를 2차원 데이터로 변환한다. Train set = 42개의 데이터 Test set = 14개의 데이터 3). K-최근접알고리즘 적용 및 훈련 => 정확도 확인 테스트세트와 훈련세트에대한 정확도가 아주 높게 나왔다. 하지만 회귀에서는 분류와는 다르게 정확한 예측 숫자를 맞추는것은 불가능 하기 때문에, 결정계수라는 것으로 평..

[Python] 머신러닝 기초-3 K-Neighbors (최근접)알고리즘을 통한 연습- 분류

자 이어서 조금 더 나은 코드를 향해 달려가보자. 공부 순서는 점진적으로 발전할 예정이다. 1). Numpy 함수 이용해보기 np.column_stack() = 리스트 여러개의 열 샘플 한개씩을 연결하여 붙여준다. np.concatenate() = 배열을 이어준다. np.ones(N) = 정수N개만큼 1로 채운 배열을 만든다. np.zeros(N) = 정수N개만큼 0으로 채운 배열을 만든다. fish_data를 찍어보면... fish_target을 찍어보면.. 2). 사이킷런으로 테스트세트와 훈련세트 나누기 3). KNeighborsClassifier() 훈련 => 결과 : 100%의 정확도 4). 훈련된 모델에 값을 넣어 예측해보자 => 결과 : 0을 반환 => 의미 : 25,150 (무게,길이)인 데..

[Python] 머신러닝 기초-2 K-Neighbors (최근접)알고리즘을 통한 연습- 분류

이어서 훈련세트와 테스트세트를 나누어 훈련을 시키고, 테스트를 하는 방식을 공부해보자 코드는 기존이랑 많이 달라지지 않지만, Numpy를 이용해서 데이터를 구분, Shuffle 하며 코드를 짜볼 것이다. 1). 데이터 준비 2). Numpy객체로 변환 3). Index를 만든 후 순서 섞기 => 기존 bream 과 smelt데이터는 섞여있지 않고 bream먼저+ smelt로 데이터가 형성되어있다 하지만 테스트세트와 훈련세트를 만들려면 데이터들이 무작위로 섞여있어야 하는것은 당연하다. 그러므로 데이터를 섞어 Indexing하여 input과 target의 index를 맞춰주는 과정이다. 4). 테스트세트와 훈련 세트를 따로 만들어주자 5). 훈련 및 예측 100%확률의 훈련 결과를 얻고, 예측값과 정답을 비..

[Python] 머신러닝 기초-1 Scikit-learn을 사용하여 물고기 예측

물고기 종류 2가지의 데이터(무게,길이)를 학습시키고, 새로운 무게,길이 데이터를 입력했을 때 결과 예측하는 코드를 짜보자. 환경 : Colab 1). 물고기 데이터 입력 2). matplotlib를 통해 그래프로 표현 3). 리스트 두개를 하나로 합친다. bream 데이터 + smelt 데이터 => 이유? 학습시킬 데이터를 하나로 묶어 표현하기 위함 4). 사이킷 런 패키지를 사용하기 위해 length와 weight를 2차원 데이터로 묶어준다. 5). 우리는 찾고싶은 데이터를 기준으로 1, 나머지는 0으로 기준을 잡을 것이다. 1,0으로 구분하는것은 컴퓨터 기준으로 표현하기 위함이다. 6). KNeightborsClassifiler 사용 k-최근접 알고리즘으로, 입력된 데이터를 다른 데이터들에 대입하여..

[Tensorflow2.x] CheckPoint란?

Tensorflow2.x를 사용하지만 1점대를 사용하며 공부하고 있어서 이점 참고하길 바란다. 1). ChechPoint란? Tensorflow 로 학습시킨 딥러닝 모델을 저장하는 방법중 하나로 Checkpoint 을 이용하는 방법이 있다. Checkpoint 는 학습된 모델의 Variable 값을 저장하는 파일이다. Checkpoint는 개발자가 딥러닝 모델을 구현해놓은것을 저장해 놓고 로드해서 사용하는것으로 생각하면 된다. 2). CheckPoint 저장방법 #Checkpoint 저장 saver = tf.train.Saver() saver.save(sess,"D:\\DATA\\test.cpkt") #Checkpoint 불러와서 저장한다. save_path = "D:\\DATA\\baechooe.cpk..

[Tensorflow2.x] Linear Regression(선형회귀) 란?

데이터를 해석하여 다음번에 어떤 일이 발생할지 예측하기 위해 머신러닝을 사용한다. 이 때 활용할 수 있는 가장 간단한 모델은 바로 직선이라고한다. 이때 데이터를 가장 잘 대표하는 1개의 직선은 Linear Regression이다. Linear Regression 알고리즘은 학습 데이터가 주어졌을 때, Cost 값을 최소화 시켜주는 Hypothesis의 Parameter(W, b)를 찾는 알고리즘이다 1). Poinsts and Lines (점,선) 하나의 직선은 slope과 intercept에 의해 정의될 수 있다. 수식 y = mx +b 여기서 m이 slope이고, b가 intercept이다. Linear Regression을 수행하는 최종 목표는 입력한 데이터들을 가장 잘 표현할 수있는 m과 b를 찾..

반응형