データマイニング-モデリングチューニング

一般的なモデル:

線形回帰、モデル決定木モデル、GBDTモデル、XGBoostモデル、LightGBMモデル

単純な線形回帰、sklearnを使用できます

from sklearn.linear_model import LinearRegression
model = LinearRegression(normalize=True)
model = model.fit(train_X, train_y)

モデルを単純に構築すると、予測やフィッティングの効果が良くないことがわかります。次に、データに問題があるかどうかを確認する必要があります。ここでのデータの問題は、シンボルがモデルの条件を満たしていないことです。

モデルを選択するかしないかを決めるときは、まずこのモデルが適用できる条件を考慮し、それらの基本的な仮定を満たさなければなりません。不適切な例を挙げると、私たちは3 7 21を気にせず、直線を使用して曲線に合わせると、必然的に良い結果が得られません。

相互検証(相互検証)

5分割交差検定

使用sklearn

from sklearn.model_selection import cross_val_score
#Evaluate a score by cross-validation
from sklearn.metrics import mean_absolute_error,  make_scorer
#Mean absolute error regression loss
#Make a scorer from a performance metric or loss function.

埋め込まれた特徴選択

フィルタリングとラッピングの特徴選択方法では、特徴選択プロセスは学習者のトレーニングプロセスとは明らかに異なります。埋め込まれた特徴選択は、学習者のトレーニング中に自動的に特徴選択を実行します。最も一般的に使用される埋め込みオプションは、L1正則化とL2正則化です。線形回帰モデルに2つの正則化手法を追加した後、それらはそれぞれリッジ回帰とラッソ回帰になりました。

#引入子包
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.linear_model import Lasso
#构成模型组
models = [LinearRegression(),
          Ridge(),
          Lasso()]
#对于每个循环,并将返回的分数,返回结果result字典
result = dict()
for model in models:
    model_name = str(model).split('(')[0]
    scores = cross_val_score(model, X=train_X, y=train_y_ln, verbose=0, cv = 5, scoring=make_scorer(mean_absolute_error))
    result[model_name] = scores
    print(model_name + ' is finished')
#取出得分进行对比
result = pd.DataFrame(result)
result.index = ['cv' + str(x) for x in range(1, 6)]
result

モデルの調整

  • お元気ですか
  • グリッドチューニング
  • ベイジアンチューニング

おすすめ

転載: blog.csdn.net/qq_45175218/article/details/105255693
おすすめ