<jupyter_start><jupyter_text>* 총 150개의 데이터* 4개의 입력 변수    * sepal length    * sepal width    * petal length    * petal width* 목표 변수    * class:        - Iris-Setosa (50)        - Iris-Versicolour (50)        - Iris-Virginica (50)<jupyter_code>X = pd.DataFrame(data = iris_data.data, columns = iris_data.feature_names)
X
y = pd.DataFrame(data = iris_data.target, columns =[['class']])
y<jupyter_output><empty_output><jupyter_text>데이터 분리<jupyter_code>X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=5)
### 로지스틱 회귀를 사용할 때는, 아래의 코드를 함께 실행시켜주는 것이 좋다.
y_train = y_train.values.ravel() # 경고 메세지를 없애기 위한 코드<jupyter_output><empty_output><jupyter_text>pandas.Sereis.ravle > https://pandas.pydata.org/docs/reference/api/pandas.Series.ravel.html`ravel`은 "풀다"로 **다차원을 1차원** 으로 푸는 것을 의미하며1차원 벡터 형태로 출력하기 위해 ravel 사용한다.* 실행 전 typepandas.core.frame.DataFrame* 실행 후 typenumpy.ndarray<jupyter_code>type(y_train)
model = LogisticRegression(solver='saga', max_iter = 2000 )<jupyter_output><empty_output><jupyter_text>* solver 모델을 최적화 할 때, 어떤 알고리즘을 쓸지 결정* max_iter 모델을 최적화 할 때, 과정을 몇 번 반복할지 결정이때, 필수적으로 설정된 값만큼 반복되는 것은 아님 모델이 충분히 최적화가 되었다고 판단되면, 자동으로 반복을 멈춘다.* alpha자동으로 최적화 되어있으므로 따로 설정할 필요 Xoptional parameter는 설정해주지 않아도 되지만 수정했을 경우 더 좋은 결과를 도출해 낼 수도 있다.<jupyter_code>model.fit(X_train, y_train)
y_test_predict = model.predict(X_test)
y_test_predict<jupyter_output><empty_output><jupyter_text>모델이 약96%의 확률로 제대로 분류한다.<jupyter_code>model.score(X_test,y_test)<jupyter_output><empty_output><jupyter_text>---  코드 정리<jupyter_code>from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

import pandas as pd  

wine_data = datasets.load_wine()
# int(wine_data.DESCR)


# 입력 변수를 사용하기 편하게 pandas dataframe으로 변환
X = pd.DataFrame(wine_data.data, columns=wine_data.feature_names)

# 목표 변수를 사용하기 편하게 pandas dataframe으로 변환
y = pd.DataFrame(wine_data.target, columns=['Y/N'])

# 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=5)
y_train = y_train.values.ravel()

# 모델 학습
logistic_model = LogisticRegression(solver='saga', max_iter=7500) 
logistic_model.fit(X_train, y_train)  # 학습 데이터를 이용해서 모델을 학습 시킨다

# 로지스틱 회귀 모델를 이용해서 각 와인 데이터 분류를 예측함
y_test_predict = logistic_model.predict(X_test)

# 로지스틱 회귀 모델의 성능 확인 (정확성 %를 리턴함)
score = logistic_model.score(X_test, y_test)
y_test_predict, score<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10848861283643893, 'fraction_numerical': 0.011594202898550725, 'mean_word_length': 5.425531914893617, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 26, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '354561', 'license': 'MIT', 'n_tokens_mistral': 1359, 'n_tokens_neox': 1555, 'n_words': 230, 'path': 'code/Logistic Regression_iris.ipynb', 'repo_name': 'Soooyeon-Kim/Machine-Learning', 'size': '2415'}