DAY24
11140 ワード
Warm-up
LInear regression
logistic regression
Logistic Regression
vaildation Test
なぜスーツを検証する必要があるのですか?
データムモデル
分類問題:ターゲット変数で最も一般的なカテゴリ
クロック列:前の時点のデータ
# mode(): Return the highest frequency value in a Series.
major = y_train.mode()[0]
# 타겟 샘플 수 만큼 0이 담긴 리스트를 만듭니다. 기준모델로 예측
y_pred = [major] * len(y_train)
分類回帰とは異なる評価指標(評価指標)の使用Accuracy=正確予測の全体予測数frac{正確予測数}{全体予測数}正確予測の全体予測数=TP+TNP+Nfrac{TP+TN}{P+NTP+TN
from sklearn.metrics import accuracy_score
print("training accuracy: ", accuracy_score(y_train, y_pred))
Baselineモデルの精度スコア(精度スコア)2donors['made_donation_in_march_2007'].value_counts(normalize=True)
どちらの値も同じですロジック回帰モデル
P(X)=11+e−(β0+β1X1+⋯+βpXp)\large P(X)={\frac {1}{1+e^{-(\beta _{0}+\beta _{1}X_{1}+\cdots +\beta _{p}X_{p})}}}P(X)=1+e−(β0+β1X1+⋯+βpXp)1
0≦P(X)≦10leq P(X)leq 10≦P(X)≦観測値特定カテゴリに属する確率値として計算する->分類問題で確率値を用いて分類する
画像ソース
Logit transformation
論理回帰の係数を直感的に説明することは困難であり,Oddsを用いて線形結合形式に変換できる.
Odds=p1−pOdds =\large\frac{p}{1-p}Odds=1−pp,
p=成功確率、1-p=失敗確率
p=1の場合bord=∞infty∞
p=0の場合bord=0
ln(Odds)=ln(p1−p)=ln(11+e−(β0+β1X1+⋯+βpXp)1−11+e−(β0+β1X1+⋯+βpXp))=β0+β1X1+⋯+βpXp\large ln(Odds) = ln(\frac{p}{1-p}) = ln(\frac{\frac {1}{1+e^{-(\beta _{0}+\beta _{1}X_{1}+\cdots +\beta _{p}X_{p})}}}{1 -\frac {1}{1+e^{-(\beta _{0}+\beta _{1}X_{1}+\cdots +\beta _{p}X_{p})}}}) =\normalsize\beta _{0}+\beta _{1}X_{1}+\cdots +\beta _{p}X_{p}ln(Odds)=ln(1−pp)=ln(1−1+e−(β0+β1X1+⋯+βpXp)11+e−(β0+β1X1+⋯+βpXp)1)=β0+β1X1+⋯+βpXp
=>フォーマットコピー(Logit transformation)
:非線形形式のRogestick関数を線形形式にし,回帰係数の意味をより容易に説明した.
せんけいかいきモデル
from sklearn.linear_model import LogisticRegression
logistic = LogisticRegression()
logistic.fit(X_train_imputed, y_train)
精度方法1logistic.score(X_val, y_val))
精度方法2y_pred1= logistic.predict(X_train)
print("training accuracy: ", accuracy_score(y_train, y_pred1))
分類基準となる各クラスに属する確率値の決定test_case = [[1, 5, 600]] #예시
logistic.predict_prob(test_case)
0と1に分類test caseが0の確率、1の確率
論理回帰モデルの場合
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')
X_train_imputed = imputer.fit_transform(X_train_encoded)
X_val_imputed = imputer.transform(X_val_encoded)
標準化from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train_imputed)
X_val_scaled = scaler.transform(X_val_imputed)
標準化によりパフォーマンスが向上N214
データプリプロセッシング
重複値のチェック
df.duplicated(subset=None, keep='first')
重複除外df.drop_duplicates(subset=None, keep='first',inplace=True)
リファレンス 特定のプロパティのみのホットコーディング
from category_encoders import OneHotEncoder
encoder = OneHotEncoder(cols=['feature'], use_cat_names = True)
X_train_e = encoder.fit_transform(X_train)
X_test_e = encoder.transform(X_test)
X_val_e = encoder.transform(X_val)
リファレンス 最適化
Hyperパラメータの調整ソース
最適化例n 214参照
もっと知りたい
可用性セットの最適化
Reference
この問題について(DAY24), 我々は、より多くの情報をここで見つけました https://velog.io/@ayi4067/DAY24-61drzcroテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol