본문 바로가기

인공지능 공부

(7)
[1026 퍼셉트론] 신경망 텐서(Tensor) 일반적으로 3차원 이상을 다룰 때의 표현 방식 (여기서는 그냥 모든 데이터를 그렇게 부름) 스칼라 (0차원 텐서) : 하나의 숫자 담고 있는 텐서 벡터 (1차원 텐서) : 숫자 배열 나타내는 텐서 3차원 텐서 : 보통 이미지 나타낼 때 사용 일반적으로 numpy array로 표현 브로드캐스팅(broadcasting) 넘파이에서 다른 shape끼리 계산 가능! 텐서 크기 변환 reshape로 텐서 크기 변환 가능 변환 전의 원소 개수와 변환 이후의 텐서 개수 같아야함 A = np.array([[1,2,3], [4,5,6]]) >> A.shape = (2,3) A = A.reshape(6) 신경망 구조 퍼셉트론 인공신경망의 종류 다수 입력과 가중치를 곱하고, 편향을 더한 값이 임계치를 초..
[머신러닝_0914] 앙상블 학습 - 여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법 (집단지성) 유형 1. Voting 2. Bagging - Random Forest 3. Boosting - AdaBoost, Gradient Boost, XGBoost(eXtra Gradient Boost), LightGBM(Light Gradient Boost) > __※ Voting vs Bagging__ Voting과 Bagging은 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식. ※ 차이점 Voting은 서로 다른 알고리즘을 가진 분류기가 같은 데이터셋을 기반으로 학습하고, 결합. 다양한 분류기법으로 데이터 예측을 하고, 이거를 하나로 합쳐서 최종 예측값을 내놓는 방식 (보팅이라는 것..
[0916] 결정 트리 시각화 규칙 잘 설정해서 분류를 잘 해야함, but 규칙이 넘 많으면 분류가 잘 될 수는 있지만 복잡해지고 과적합 야기할 수 있음 정보의 균일도 정보 균일도 측정 방법 1. 엔트로피를 이용한 정보이득: 엔트로피는 주어진 데이터 집합의 혼잡도를 의미, (서로 다른 값 多 : 높고, 같은 값 多 : 낮음) 정보 이득 지수 = 1- 엔트로피 지수. 결정트리는 정보 이득이 높은 속성을 기준으로 분할 2. 지니계수: 0이 가장 평등하고 1에 가까울수록 불평등. 머신러닝에 적용될 땐 지니계수가 낮을수록 데이터 균일도가 높음 dt_clf = DecisionTreeClassifier(random_state=156) X_train , X_test , y_train , y_test = train_test_split(iris_da..
[0916] PCA(주성분 분석)_차원축소 - 우리는 데이터가 가진 속성을 특성이라 불렀으며 이를 '차원'이라고도 부른다. (데이터셋 특성 100개 = 100개의 차원) - 차원을 줄이면 저장공간을 줄일 수 있고, 학습 속도 또한 빨라진다. 그리고 많은 특성을 한번에 시각화할 수도 있다. - 차원 축소는 비지도 학습중 하나의 알고리즘이다. PCA (주성분 분석) >>> 변수 간 상관관계를 이용해서 주성분을 추출해서 차원 축소하는 기법 (기존 데이터의 유실 최소화 해야함) PCA는 가장 높은 분산을 가지는 데이터의 축을 찾아 이 축으로 차원을 축소하는데, 이것이 PCA의 주성분입니다. 원본 데이터의 피처 개수에 비해 매우 작은 주성분으로 원본 데이터의 총 변동성으로 대부분 설명할 수 있는 분석법 정리하면 PCA는 입력 데이터의 공분산 행렬이 고유벡..
[머신러닝_0915] 모델 예측성능 평가 titanic 머신러닝 과정 [ 데이터 수집/가공/변환 👉 모델 학습 및 예측 👉 평가 (성능 평가 지표) ] 👇 [[ 정확도(Accuracy) / 오차행렬(Confusion Matrix) / 정밀도(Precision) / 재현율(Recall) / F1 Score / ROC AUC ]] titanic_df['Age_cat'] = titanic_df['Age'].apply(lambda x : get_category(x)) get_category 라는 함수를 만들었고, 이를 데이터프레임의 각 요소에 적용하고 싶을때!!!! " .apply(lambda x: ~~~) " from sklearn import preprocessing le = preprocessing.LabelEncoder() le = le.fit(titanic..
[머신러닝] Model Selection.train_test_split 09/14 공부 내용 1. 데이터 가져오고 분류하기 데이터를 학습과 테스트 데이터로 분류하기 위해 train_test_split 함수 사용 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import pandas as pd iris_dt = load_iris() iris_df = pd.DataFrame(iris_dt.data, columns = iris_dt.feature_names) # 학습용과 테스트용으로 나누는 과정 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 0) # iris_dt 가 dict 형태..
[머신러닝] k-NN 알고리즘 k-NN 알고리즘 : 정답(레이블)이 없는 데이터를 분류 - 새로운 데이터를 예측할 때 기존 훈련 데이터셋에 가장 가까운 데이터 포인트 즉 최근접 이웃을 찾습니다 (새로운 데이터가 들어왔다 -> 기존에 있는 거 보고 뭐랑 제일 가까이있나~~ 비슷하나~~ 보면서 정답 예측) - training, test 세트 나누기 from sklearn.neighbors import KNeighborsClassifier #모델생성 knn=KNeighborsClassifier() #학습 데이터 이용해 훈련 (피팅하기) knn.fit(fish_data, fish_target) - k-최근접 이웃 분류 #!pip install mglearn # 그래프나 데이터 적재와 관련한 세세한 코드를 일일이 쓰지 않아도 되게끔 만든 유틸..