kaggle--titanic(3)
メタデータセットの初期処理が行われ、保存、破棄、作成する対応するfeatureが決定され、モデリングが可能になりました.機械学習のモデルはいろいろあるので,タスクタイプに応じてどのモデルを使うのが合理的かを判断する.前に見たことがありますが、kaggleのコンテストでは、一般的に上位にランクされているものが統合方法を使用しています.私たちのこの問題の目標は、乗客一人一人が生存しているかどうかを判断することであり、分類問題であり、監督問題である.まず訓練セットとテストセットを処理します.
次に、異なるモデルの試みを開始します.まず、線形回帰モデルです.これは比較ベースのモデルです.彼はlogistic関数を用いて確率を推定し,因変数と複数の自己変数(特徴)の関係を計算した.次のコードのscore関数の役割は、すでにtrainを使用していることです.Data訓練で得られたmodelは,新しい結果y`を予測し,このy`と正しい結果yとの類似度を計算し,このモデルの効果を評価した.なぜかというと、フィットしすぎを防ぐためだと思います.モデリングしてtrainを完全に利用したのでdataの各データのモデルは、次のコードのacc_をもたらします.log=100%では、フィットしたことを示す可能性が高い.
それ以外にlogistic関数を用いて,我々が以前に特徴の完備によって行った決定と仮定が正しいかどうかを判断することもでき,この評価基準は決定関数における異なる特徴とタスク目標との間の係数によって表現することができる.(一次関数、二次関数の間の係数に相当します).係数の絶対値が大きいほど良い.絶対値が大きいほど、この特徴を表す変化はタスクターゲットの変化を引き起こし、このfeatureがモデル全体において大きな役割を果たすことを意味する.
2番目のモデルはサポートベクトルマシンであり,サポートベクトルマシンも非常に一般的なモデルである.覚えていなければ降維の思想とmarginの概念を使ったはずだ.
次にKNNアルゴリズムであり,このアルゴリズムはクラスタリングアルゴリズムによく用いられる.
perceptronは、ベクトルで表されるinputのセットを与えて、どのクラスに属するかを決定する二分類の監督学習問題を解決するための方法である.線形分類方法でもある.
ランダム森林は、多くの決定木を組み合わせて、それぞれ訓練することに相当する集積モデルであり、最後の結果はこれらのモデルの平均値または他の形式をとる.
この任務に対して私たちの結果もランダム森林の訓練出力を採用した.
提出後、最後のscoreは0.765で、14343+名ハハハに並びました.
まとめ
あとで一度やっただけで、モデルを呼び出す過程も難しくないような気がします.結局、呼び出すのは簡単なモデルで、パラメータもよく調整するとは言っていません.1.まずメタデータセットを観察し、利用可能なfeatureを見つけます.次いで、異なるfeatureに対して異なる操作を採用し、例えば廃棄または二次加工を行う.2.すべてのfeatureの値を数値型に変換するには、いくつかの連続型変数について適切にグループ化し、異なるシーケンス番号で表すことができます.3.logistic関数を使用して、ある特徴がmodelで重要な役割を果たしているかどうか、すなわち、ある特徴とタスクターゲットとの間の係数関係が十分に大きいかどうかを判断することができる.しばらく考えたのはこれだけです.やはりいくつかの収穫があります.
X_train = train_data.drop('Survived',axis=1)
Y_train = train_data['Survived']
X_test = test_data.drop('PassengerId',axis=1).copy()
次に、異なるモデルの試みを開始します.まず、線形回帰モデルです.これは比較ベースのモデルです.彼はlogistic関数を用いて確率を推定し,因変数と複数の自己変数(特徴)の関係を計算した.次のコードのscore関数の役割は、すでにtrainを使用していることです.Data訓練で得られたmodelは,新しい結果y`を予測し,このy`と正しい結果yとの類似度を計算し,このモデルの効果を評価した.なぜかというと、フィットしすぎを防ぐためだと思います.モデリングしてtrainを完全に利用したのでdataの各データのモデルは、次のコードのacc_をもたらします.log=100%では、フィットしたことを示す可能性が高い.
logreg = LogisticRegression()
logreg.fit(X_train, Y_train)
Y_pred = logreg.predict(X_test)
acc_log = round(logreg.score(X_train, Y_train) * 100, 2)
print(acc_log)
それ以外にlogistic関数を用いて,我々が以前に特徴の完備によって行った決定と仮定が正しいかどうかを判断することもでき,この評価基準は決定関数における異なる特徴とタスク目標との間の係数によって表現することができる.(一次関数、二次関数の間の係数に相当します).係数の絶対値が大きいほど良い.絶対値が大きいほど、この特徴を表す変化はタスクターゲットの変化を引き起こし、このfeatureがモデル全体において大きな役割を果たすことを意味する.
coeff_df = pd.DataFrame(train_df.columns.delete(0))
coeff_df.columns = ['Feature']
coeff_df["Correlation"] = pd.Series(logreg.coef_[0])
print(coeff_df.sort_values(by='Correlation', ascending=False))
2番目のモデルはサポートベクトルマシンであり,サポートベクトルマシンも非常に一般的なモデルである.覚えていなければ降維の思想とmarginの概念を使ったはずだ.
svc = SVC()
svc.fit(X_train, Y_train)
Y_pred = svc.predict(X_test)
acc_svc = round(svc.score(X_train, Y_train) * 100, 2)
print(acc_svc)
次にKNNアルゴリズムであり,このアルゴリズムはクラスタリングアルゴリズムによく用いられる.
knn = KNeighborsClassifier(n_neighbors = 3)
knn.fit(X_train, Y_train)
Y_pred = knn.predict(X_test)
acc_knn = round(knn.score(X_train, Y_train) * 100, 2)
print(acc_knn)
perceptronは、ベクトルで表されるinputのセットを与えて、どのクラスに属するかを決定する二分類の監督学習問題を解決するための方法である.線形分類方法でもある.
# Perceptron
perceptron = Perceptron()
perceptron.fit(X_train, Y_train)
Y_pred = perceptron.predict(X_test)
acc_perceptron = round(perceptron.score(X_train, Y_train) * 100, 2)
print(acc_perceptron)
ランダム森林は、多くの決定木を組み合わせて、それぞれ訓練することに相当する集積モデルであり、最後の結果はこれらのモデルの平均値または他の形式をとる.
# Random Forest
random_forest = RandomForestClassifier(n_estimators=100)
random_forest.fit(X_train, Y_train)
Y_pred = random_forest.predict(X_test)
random_forest.score(X_train, Y_train)
acc_random_forest = round(random_forest.score(X_train, Y_train) * 100, 2)
print(acc_random_forest)
この任務に対して私たちの結果もランダム森林の訓練出力を採用した.
提出後、最後のscoreは0.765で、14343+名ハハハに並びました.
まとめ
あとで一度やっただけで、モデルを呼び出す過程も難しくないような気がします.結局、呼び出すのは簡単なモデルで、パラメータもよく調整するとは言っていません.1.まずメタデータセットを観察し、利用可能なfeatureを見つけます.次いで、異なるfeatureに対して異なる操作を採用し、例えば廃棄または二次加工を行う.2.すべてのfeatureの値を数値型に変換するには、いくつかの連続型変数について適切にグループ化し、異なるシーケンス番号で表すことができます.3.logistic関数を使用して、ある特徴がmodelで重要な役割を果たしているかどうか、すなわち、ある特徴とタスクターゲットとの間の係数関係が十分に大きいかどうかを判断することができる.しばらく考えたのはこれだけです.やはりいくつかの収穫があります.