반응형 Artificial Intelligence/Machine Learning26 [Colab / Keras] Avocado Price 예측 모델 만들기 2 # 데이터 전처리 신경망 모델을 학습시킬 때, 혹은 기계학습 기반의 인공지능 모델을 학습시킬 때 가장 중요한 것은 '좋은 데이터'를 인풋으로 제공하는 것이다. 이를 위해 여러 전처리 기법이 있고, 더 최적의 데이터 주입을 위해 다양한 머신러닝 알고리즘도 탄생했으며, 지금도 연구 중이다. 아보카도 데이터셋은 머신러닝 초보자 용으로 적합하기 때문에, 데이터 자체는 문제될 것이 없다. 다만 이를 어떻게 전처리하고, 가공해서 이용할 것이냐는 전적으로 사용자의 몫이다. # 데이터 시각화 데이터 전처리를 하고, 기계를 학습시켜 올바른 인과관계를 통한 추론을 얻으려면 데이터 간 관계도 파악해야 한다. 이때 적용할 수 있는 방법이 데이터를 시각화 하는 것이다. 가령 X라는 데이터와 Y라는 데이터의 상관관계를 분석하기 .. 2020. 4. 24. [Colab / Keras] Avocado Price 예측 모델 만들기 1 #Avocado Data 캐글의 유명한 데이터셋. 한때 젊은 층 사이에서 열풍을 불렀던 주인공 아보카도의 가격을 예측하는 것을 목적으로 배포되는 데이터셋이다. 캐글 홈페이지에 들어가서, avocado 를 검색하면 최상단에 위치해 있고, 무료로 다운받을 수 있다. 필자는 다운받은 Avocado 데이터를 구글 드라이브에 올려놓고, 캐글에서 이용하기 위해 드라이브 마운트를 하여 Pandas 라이브러리를 이용해 데이터를 불러오는 작업을 거쳤다. 이제 막 머신러닝 공부를 시작했다면 복잡하지 않으면서 쉬운 방법이라고 생각한다. #Make Model 기본적으로 Keras를 이용해서 간단한 신경망을 구현하였고, 데이터의 전처리는 Scikit-Learn을 이용하였다. 모델을 구축하기 위해 필요한 라이브러리들을 impor.. 2020. 4. 24. [Keras Deep Learning] 신경망 Tutorial # Why Keras? 필자는 이전까지 [핸즈온 머신러닝] 시리즈를 이어왔다. 핸즈온 머신러닝은 아주 유명하고 좋은 서적이나, 1판 기준으로는 2부 신경망/Deep learning 주제에서 Tensorflow 1 버전을 이용하기에, 트렌드에 뒤쳐진 측면이 있었다. Tensorflow 는 지난해 2.0 버전을 발표하면서 Keras를 주력 기반 프레임워크로 내세웠으며, Keras는 기존의 TF 1버전에 비해 초보자들도 사용하기 쉽고 간단한 문법으로 이루어져 있다. 따라서 일반 Machine Learning, 즉 핸즈온 머신러닝 시리즈에서 1부에 해당하는 부분은 핸즈온 머신러닝의 Scikit-Learn으로 진행하였고, 신경망/기타 다른 Deep Learning 에 대해서는 Keras를 이용하는 방향으로 연재를.. 2020. 4. 18. 핸즈온 머신러닝(8) - 앙상블 학습 # 앙상블 학습 - 머신러닝의 집단지능. 여러 분류기의 예측을 모아서 하나의 예측을 함 - 모든 분류기가 완벽하게 독립적일 때 최고의 성능을 발휘 -> 각각 다른 알고리즘으로 학습시키는 것이 좋음 - 같은 종류의 분류기가 같은 데이터로 학습하면 같은 종류의 오차를 만들기 쉽다. # 직접투표, 간접투표 직접 투표 분류기: 각 분류기의 예측을 모아서 가장 많이 선택된 클래스를 예측. (voting = 'hard') 간접 투표 분류기: 모든 분류기가 predict_proba() 메서드와 같이 클래스의 확률을 예측할 수 있는 경우 개별 분류기의 예측 확률을 평균하여 가장 높은 확률의 클래스를 예측. (voting = 'soft') # 배깅과 페이스팅 분류기를 같은 알고리즘을 사용하는 경우, 훈련 세트에서 서브셋.. 2020. 1. 29. 핸즈온 머신러닝(7) - 결정 트리 # Decision Tree - 분류와 회귀 작업, 다중 출력 작업 가능 - 매우 복잡한 데이터셋 학습 가능 - 랜덤 포레스트(Random Forest) 의 기본 구성 요소 # 학습과 시각화 사이킷런의 DecisionTreeClassifier 모듈을 통해 결정 트리 모델 학습 가능, Graphviz 를 통해 결정 트리 시각화 가능 예시) iris 데이터셋의 꽃잎 길이와 꽃잎 너비 데이터를 이용하여 클래스 분류하기 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X = iris.data[:, 2:] # petal length and width y = iris.targ.. 2020. 1. 28. 핸즈온 머신러닝(6) - 서포트 벡터 머신 2 # SVM 회귀 기존 분류에 적용: 일정한 마진 오류 안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 함 회귀에 적용: 제한된마진 오류 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 함 -> 도로의 폭은 하이퍼파라미터 $\varepsilon$ 으로 조절 * 허용오차의 하이퍼파라미터와 다름. SVR과 LinearSVR에서 허옹오차는 tol, 도로의 폭은 epsilon 매개변수로 지정 from sklearn.svm import LinearSVR np.random.seed(42) m = 50 X = 2 * np.random.rand(m, 1) y = (4 + 3 * X + np.random.randn(m, 1)).ravel() svm_reg = LinearSVR(epsilon=1.5, rand.. 2020. 1. 27. 이전 1 2 3 4 5 다음 반응형