분류 전체보기170 [머신러닝] Decision Tree DecisionTreeClassifier로 데이터셋을 여러 갈래로 나눠 분류할수 있다. df= 전처리 과정: X = df.iloc[:, [2,3]] y = df['Purchased'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25,random_state=3) sklearn.tree 라이브러리의 DecisionTreeClassifier를 사용한다. fr.. 2022. 5. 9. [머신러닝] sklearn.datasets, hyper parameter, GridSearchCV scikit learn 에서 많이 사용하는 데이터셋을 기본적으로 제공한다. sklearn.datasets을 사용하여 유방암의 양성과 악성을 진단할수있는 데이터셋을 가져오자. from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() # cancer 변수로 딕셔너리 형태의 데이터셋을 저장했다. 어떤 데이터들이 들어있는지 확인해보자. in: cancer.keys() out: dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename']) # 7개의 키가 있다. # feature_names에 종양의 특징들을 나타낸 열의 이름이 나.. 2022. 5. 9. [머신러닝] SVM(Support Vector Machine) 서포트 벡터 머신(SVM)은 분류선(Maximum Margin Classifer)을 기준으로 데이터를 분류할수있다. # 분류선에 제일 근접한 데이터를, 가장 큰 마진으로 설정하는 선으로 결정한다. # 이를 통해 분류하기 애매한것들을 쉽게 분류할수있다. (예시: 노란 사과와 오렌지, 초록색 오렌지와 초록색 사과 등) df= 먼저 전처리과정을 진행한다. df.isna().sum() #Nan 없음 X = df.loc[:,'Age':'EstimatedSalary'] y = df['Purchased'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X) from sklearn.mod.. 2022. 5. 9. [머신러닝] K-Nearest Neighbor (KNN) KNN을 통해 주어진 데이터를 어느 카테고리로 분류할지 정할수있다. # 새로운 데이터가 발생 시, Euclidean distance 에 의해서, 가장 가까운 K 개의 이웃을 택한다. # K 개의 이웃 카테고리를 확인한 후, 카테고리의 숫자가 많은 쪽으로 새로운 데이터의 카테고리를 정한다. df= 먼저 데이터로 전처리과정을 트레인 테스트 스플릿까지 진행해보자 df.isna().sum() #Nan 없음 X = df.loc[:,'Age':'EstimatedSalary'] y = df['Purchased'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X) from sklearn.. 2022. 5. 6. [머신러닝] Logistic Regression, Dealing NaN 리니어 리그레션과 다르게 로지스틱 리그레션은 분류를 위해 모델링된다. 예시로 물건을 구매할사람과 아닌사람을 예상해서 분류할수있다. # 0.5 를 기준으로 0과 1로 나누는 과정 나이와 연봉을 분석해서 물건을 구매할지 안할지 분류하자 df= 데이터를 기반으로 트레인 테스트 스플릿 과정까지 진행하자. df.isna().sum() #Nan 없음 X = df.loc[: ,'Age':'EstimatedSalary' ] y = df['Purchased'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X) from sklearn.model_selection import train_te.. 2022. 5. 6. [머신러닝] Multiple Linear Regression: predict 하나의 변수일때 심플, 두개 이상일때 멀티플 리니어 리그레션이라고 부른다. 멀티플 리니어 리그레션으로 학습해보자. # Nan 처리 df.isna().sum() # Nan 없음 # X, y 분리 X = df.loc[:,'R&D Spend':'State'] y = df['Profit'] # 인코딩 from sklearn.preprocessing import LabelEncoder, OneHotEncoder from sklearn.compose import ColumnTransformer ct = ColumnTransformer( [ ('encoder',OneHotEncoder(), [3] ) ] , remainder='passthrough' ) X = ct.fit_transform(X) # 학습용과 테스트용.. 2022. 5. 6. [머신러닝] Linear Regression 선형회귀(Linear Regression)를 통해 분포된 데이터에서 관계를 찾고 그 관계를 직선형 방정식으로 나타내어 다른 주어진 데이터로 예측할수있다. x,y값은 데이터셋으로 주어졌으며 이를 통해 b를 찾아야한다. 그리고 실제와 예상의 오차를 줄여 b0, b1 의 값을 찾아 가는 과정을 학습이라고 한다. 여기 경력과 연봉데이터를 나타내는 데이터프레임이 있다. df= 먼저 Nan을 찾고, 있으면 처리한다. in: df.isna().sum() out: YearsExperience 0 Salary 0 dtype: int64 # Nan이 없다. X를 설정하자 in: X = df.iloc[:,0] X.shape out: (30,) # X의 형태가 1차원으로 나온다. ※ X가 무조건 2차원일때 학습이 가능하다. .. 2022. 5. 6. [머신러닝] 전처리 과정 (Data preprocessing): NaN 처리, Label Encoding, One-hot Encoding, Feature Scaling, train_test_split 머신러닝은 말그대로 컴퓨터를 학습시키는 과정이다. 학습시키기 위해 컴퓨터가 학습할수 있도록 데이터를 변환하는 과정을 전처리 과정이라 한다. 전처리 과정을 시작하기 위해 sklearn을 사용해야한다. 만약 설치되지 않았다면 다음으로 설치한다: $ conda install -c conda-forge scikit-learn 먼저 전처리할 (머신러닝에 필요한) 데이터를 불러온다. in: df = pd.read_csv('data/Data.csv') df out: NaN 값이 있는지 확인 후 처리한다. in: df.isna().sum() out: Country 0 Age 1 Salary 1 Purchased 0 dtype: int64 in: df = df.dropna() df out: # NaN을 drop 할수도있.. 2022. 5. 5. 이전 1 ··· 15 16 17 18 19 20 21 22 다음