본문 바로가기

Python231

Logistic_KNN □ K-최근접 이웃 알고리즘은 주변 이웃의 클래스 비율과 확률을 기반으로 대상을 분류함 □ 그렇다면 렄키백이 있다고 가정하고, 렄키백마다 타겟별 꺼내질 확률은 어떻게 알까? □ 타겟값이 2개인 이진분류일때는 시그모이드(로지스틱) 함수를 사용하고, 타겟값이 3개 이상인 소프트 맥스일 경우에는 소프트맥스함수를 사용하여, 인풋값의 이웃들에 대한 확률 기반으로 특정 값으로 분류되는 것을 확인할 수 잇음 □ 예제 ○ 데이터 호출 및 확인 #데이터 호출 및 확인 import pandas as pd fish = pd.read_csv("https://bit.ly/fish_csv_data") print(fish.head(2)) print("\n") #타겟값 중복값 제거하여 확인 print(pd.unique(fish["S.. 2024. 3. 22.
규제(L1, L2)와 Ridge, Lasso https://dandora-90.tistory.com/298 Multiple Regression(다중회귀) https://dandora-90.tistory.com/295 KNN_Regression&LinearRegression □ K 최근접 이웃 회귀(K-NN Regression) ○ K-최근접 이웃 회귀모델은 분류와 동일하게 가장먼저가까운 k개의 이웃을 찾음. ○ 그다음 이웃샘플의 dandora-90.tistory.com 위 글에 이어서.. 학습점수를 높이기위해 속성을 엄청나게 늘리고 학습을 했더니 과대적합이 발생하였음. 무엇이 문제일까? 킹받는다... 아마 행 수 보다 속성 수가 많아, 과대적합이 발생된 것으로 예상되어, 조치가 필요하다고 생각됨. 과대적합을 해결하기위해 규제가 필요하다고 판단했고 .. 2024. 3. 15.
Multiple Regression(다중회귀) https://dandora-90.tistory.com/295 KNN_Regression&LinearRegression □ K 최근접 이웃 회귀(K-NN Regression) ○ K-최근접 이웃 회귀모델은 분류와 동일하게 가장먼저가까운 k개의 이웃을 찾음. ○ 그다음 이웃샘플의 타깃값을 평균하여 샘플의 예측값으로 사용. ○ 사 dandora-90.tistory.com 위 글에서 농어의 길이로 무게 예측을 위해 Linear Regression(선형회귀)를 사용하여 트레이닝/테스트 점수가 올랐으나 약간의 과소적합 경향이 보였음. 이를 해결하기위해 Multiple Regression(다중회귀)를 사용하여 트레이닝/테스트 점수관련 과대/과소적합을 방지하고자함. 우선 다항회귀와 다중회귀의 차이를 알아보자. 다항회.. 2024. 3. 15.
Numpy dot/transpose □ .dot() : 행렬의 곱 A=np.array([[1,2,3],[4,5,6]]) B=np.array([[7,8],[9,10],[10,11]]) dot_pd = np.dot(A,B) print(A) print("\n") print(B) print("\n") print(dot_pd) □ .transpose() : 주어진 행렬의 행과 열을 바꾸는 것 A=np.array([[1,2,3],[4,5,6]]) B=np.array([[7,8],[9,10],[10,11]]) print(A) print("\n") transpose_A = np.transpose(A) print(transpose_A) print("\n") print(B) print("\n") transpose_B = np.transpose(B) prin.. 2024. 3. 14.
Numpy sort/argsort □ 기본적으로 오름차순 / 내림차순은 [::-1] □ np.sort(ndarray) : 인자로 들어온 행렬은 그대로 유지한 채 원 행렬의 정렬된 행렬 반환 □ ndarray.sort : 행렬 자체를 정렬한 형태로 변환하며 반환값은 None org_array = np.array([3,1,9,5]) print(org_array) print("\n") print("오름차순") sort_org_array = np.sort(org_array) print(sort_org_array) print("\n") print("내림차순") desc_sort_org_array = np.sort(org_array)[::-1] print(desc_sort_org_array) print("\n") org_array = np.arra.. 2024. 3. 14.
KNN_Regression&LinearRegression □ K 최근접 이웃 회귀(K-NN Regression) ○ K-최근접 이웃 회귀모델은 분류와 동일하게 가장먼저가까운 k개의 이웃을 찾음. ○ 그다음 이웃샘플의 타깃값을 평균하여 샘플의 예측값으로 사용. ○ 사이킷런은 회귀모델의 점수로 R^2 즉 결정계수 값을 반환. ○ 이 값은 1에 가까울수록 좋으며 정량적인 평가르 하고싶다면 사이킷런에서 제공하는 다른 평가 도구를 사용할 수 있음. □ 선형 회귀(LinearRegression) ○ 기본개념 : 평균(기대값)으로 돌아간다. ○ 즉, 평균값에 가까워지려는 경향을 의미하는게 회귀임. ○ 널리 사용되는 대표적인 회귀 알고리즘. ○ 선형이란 말에서 짐작할 수 있듯이 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘. ○ 특성을 가장 잘 나타낼 수 있는 직선을 찾.. 2024. 3. 13.
K-Nearest Neighbor : K-NN 알고리즘 □ K-NN(K-Nearest Neighbor) 알고리즘 : k-최근접 이웃 알고리즘(또는 줄여서 k-NN)은 분류나 회귀에 사용되는 비모수 방식으로 두 경우 모두 입력이 특징 공간 내 k개의 가장 가까운 훈련 데이터로 구성 □ 분석내용 : 도미와 빙어의 길이, 무게 속성 데이터로 새로 들어오는(입력되는) 물고기의 종류를 분류해보자 ○라이브러리 # 라이브러리 import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier #K-NN알고리즘활용을위해 호출 ○데이터준비 #도미 데이터 준비 bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, .. 2024. 3. 12.
Chat_gpt API 연동방법 □ https://openai.com/product 접속 □ API>Overview 클릭 ※ 계정이없다면 계정생성 후 로그인할 것 □ API>Overview 클릭 □ 기본적으로 처음 계정생성 후 로그인하면 3개월간 이용할수 있는 $5 가량의 크레딧을 준다고함. 따라서 로그인 후 아래 이미지와 같이 참고하여 잔여크레딧 확인. (작성자의 경우에는 3개월 뒤 크레딧이 소멸되어 $5 충전함) → 최소 충전금액 $5이며, 충전금액만큼 API를 활용할 수 있음 □ API 키 발급 □ API연동관련 코딩 및 ChatGpt 기능구현 #라이브러리 from openai import OpenAI #API키 입력 client = OpenAI( api_key="개인발급키" ) #대화가 끊기지 않도록 while True 사용 w.. 2024. 3. 10.
Numpy 배열 병합/분할 □ 병합 : np.append(배열1,배열2, axis=0or1) #배열간 병합 a = np.arange(1,13).reshape(3,4) b = np.arange(13,25).reshape(3,4) c = np.append(a,b,axis=0) d = np.append(a,b,axis=1) print(f"a 형태 :\n{a}") print("\n") print(f"b 형태 :\n{b}") print("\n") print(f"c 형태(행방향 병합) :\n{c}") print("\n") print(f"d 형태(열방향 병합) :\n{d}") print("\n") □ 병합 ○ vstack = axis 0 기준으로 병합 ○ hstack = axis 1 기준으로 병합 a = np.arange(1,33).resha.. 2024. 3. 10.