機械学習入門


私の3番目のブログへようこそ!
このブログでは、KAGLEコースの基本的なコンセプトを紹介しています(イントロから機械学習まで)、私たちの最初のモデルをここで構築します.
レッスン1 :モデルの動作方法
例を見ていきましょう.
  • あなたのいとこは不動産に投機数百万ドルを作った.彼はデータサイエンスに興味を持っているので、あなたとのビジネスパートナーになるために提供されています.彼はお金を供給し、どのように多くの様々な家の価値を予測するモデルを供給します.
  • 彼が「直観」によって言った前に、彼が住宅価格を予測する方法を疑問に思うとき、より多くの質問は彼が過去に見た家から価格パターンを特定したと明らかにします、そして、彼は彼が考慮している新しい家のために予測をするためにそれらのパターンを使います.
    機械学習は同じように働きます.決定木と呼ばれるモデルから始めましょう.より正確な予測を与えるfancierモデルがあります.

    あれは何ですか.
  • DT(決定木)は家を2つのカテゴリーに分けます.
  • 我々は、家を2つのグループに分ける方法を決めるために、データを使います
  • その後、再度、各グループの予測価格を決定する.データからパターンをキャプチャするこのステップは、フィッティングまたはモデルを訓練と呼ばれます.
  • データがフィットした後は、追加の新しい家の価格を予測する新しいデータにそれを適用することができます.
  • 決定木の改良

    今、それはあなたの心の中で確実にDT 1は、より多くの意味を作るベッドルームのより多くの権利が高い価格は、右でしょうか?
    まあ、これは完全に本当ではない.
    余分な機能(例えば、ロットサイズ、犯罪率など)があります.
    これは間違いなく予測価格に影響を与えるより多くの機能をカバーし、それらは余分な“スプリット”である深い木につながる.

    葉は、我々が我々の予想される価格を持っているところです.
    葉の区切りと値は、データによって決定されるので、我々は、我々が働くだろうデータをチェックする必要があります.
    レッスン2 :基本データの探索(データを調べる)
    MLモデルを構築するには、よく知られていて、完全にデータを理解する必要があります.そのためには、よく知られているライブラリの一つが「パンダ」です.
    パンダは何ですか.
    パンダは、データの探索と操作に使用される主要なツールです.
    パンダ
    インポートしましょう
    import pandas as pd
    
    パンダの最も重要な部分は“dataframe”です.
    DataFrameは、テーブルとして考えるかもしれないデータの種類を保持します.これはExcelのシート、SQLデータベースのテーブルに似ています.
    Pandasは、この種のデータを使用したいと思います.
    若干のコードをしましょう!
    このデータセットをチェックしますHomes in Melbourne, Australia
    いつものように、チェックcode
    データ記述の解釈
    結果は、私たちの元のデータセットの各列の8つの数字を示しています.最初の数は、多くの行が欠落している値を持っていることを示すカウントです.
    欠落した値が多くの理由で発生します.例えば、1ベッドルームの家を測るとき、第2のベッドルームのサイズは集められません.我々は、データを欠落する話題に戻ります.
    番目の値は平均です.
    第3の値はstd(標準偏差)であり、数値がどのように広がっているかを測定する.
    ミン、25 %、50 %、75 %、最大値を解釈するには、各列を最低から最高値までソートすることを想像してください.
    最初の(最小値)値はminです.
    あなたがリストを通して4分の1通りに行くならば、あなたは値の25 %より大きい数と25 %の値(「25番目のパーセンタイル」と発音される)の75 %より少ない数を見つけます.
    50番目と75番目のパーセンタイルは、同様に定義され、MAXは最大数です.
    第3課:最初の機械学習モデル
    このレッスンでは、モデルを構築するために、上記の説明を適用します.レッツゴー!
    モデリングのためのデータの選択
    私たちはここにたくさんの変数を持っていますので、私たちの直感を使っていくつかを選びます.
  • 変数/列を選択するには、データセット内のすべての列の一覧を表示する必要があります.
  • ===>
    melbourne_data.columns
    
    出力=>インデックス('' ' suburb '、' address '、' price '、' price '、' method '、' date '、' date '、' distance '、' distance '、' basom 2 '、'浴室'、' car '、' landsize '、' buildingarea '、' year builsting '、' posiilarea '、' lattitude ', ' longtitude ', ' regionname ', ' property tycount ', dtype = ' object ')
    不足している値がある
  • 我々は現在、我々のデータから家をドロップするための最も簡単なオプションを取る.( Dropnaとして考えられるように、「NA」は「利用できない」ことを意味します).
  • melbourne_data = melbourne_data.dropna(axis=0)
    
    今、我々のデータから作品を選択します
    次の2つのアプローチがあります.
  • - 我々は“予測ターゲット”を選択するために使用するドット表記法
  • - 我々は“機能”を選択するために使用する列のリストを選択
  • 予測対象の選択
    ドット表記で", "
    この単一の列は、データの1つの列だけを持つDFのようなシリーズに格納されます.
    予測の対象となる列を選択するためにドット表記を使います.
    予測目標yを呼び出します.
    それで、我々はメルボルンデータで住宅価格を保存する必要があります:
    y = melbourne_data.Price
    
    選択機能
    カラムまたは"機能"私たちの場合、それらはホーム価格を決定するために使用されます.場合によっては、ターゲットを除くすべての列を機能として使用します.他の回では少ない機能でより良いでしょう.
    今のところ、いくつかの機能だけでモデルを構築します.後に、さまざまな機能で構築されたモデルを反復して比較する方法を見ます.
    我々は、列名のリストを提供することにより、複数の機能を選択します.
    以下に例を示します.
    melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']
    
    我々は、我々のデータ「X」を呼びます
    X = melbourne_data[melbourne_features]
    
    もっと深く見ましょう
    X.describe()
    
    アウトプット→ルームバスルーム
    6196.000000 6196.000000 6196.000000 6196.000000 6196.000000
    平均2.931407
    Std 0.971079
    1000万円
    25 % 2.00万1.000000 152.000000 - 37.855438 144.926198
    50 % 3.000000 1.000000 373.000000 - 37.802250 144.995800
    75 % 4.000000 2.000000 628.000000 - 37.758200 145.052700
    マックス8.000000 8.000000 37000.700000 - 37.457090 145.526350
    And
    X.head()
    
    出力
    ルームバスルームランドリー
    1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 .
    2 . 3 . 1 . 0 . 1 . 0 . 1 . 0 . 1 . 1 . 2 . 3 . 1 . 0 . 1 . 0 . 1 . 1 . 2 . 1 . 1 .
    4 4 . 1.0 120.0 - 37.8072 144.9941
    6 3 .
    7 2 . 2 . 1 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2
    モデルのビルド
    私たちは私たちのモデルを作成するには、Scikitの学習ライブラリを使用します.
    SkLearnは、データファイルの典型的なデータ型をモデル化するための最も人気のあるライブラリです.
    モデルの構築と使用の手順は次のとおりです.
    定義:モデルの種類は何ですか?決定木?いくつかの他のタイプのモデル?モデル型の他のパラメータも指定されています.
    フィット:提供データからキャプチャパターン.これはモデリングの中心です.
    予測:ちょうどそれのような音
    評価:どのように正確なモデルの予測を決定します.
    ここでは、SciKit Learningで決定木モデルを定義して、特徴と目標変数とそれを合わせます.
    from sklearn.tree import DecisionTreeRegressor
    
    # Define model.Specify a number for random_state to ensure same results each run
    melbourne_model = DecisionTreeRegressor(random_state=1)
    
    # Fit model
    melbourne_model.fit(X, y)
    
    出力
    デシジョントレラント
    多くの機械学習モデルは、モデルトレーニングで若干のランダム性を許します.
    無作為状態の番号を指定すると、各実行で同じ結果を得ることが保証されます.
    我々は、任意の数を使用して、モデルの品質を正確にどのような値を選択に依存しません.
    我々は今、我々は予測を行うために使用できるフィットモデルがあります.
    print("Making predictions for the following 5 houses:")
    print(X.head())
    print("The predictions are")
    print(melbourne_model.predict(X.head()))
    
    出力=次の5つの家の予測を行う
    ルームバスルームランドリー
    1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 .
    2 . 3 . 1 . 0 . 1 . 0 . 1 . 0 . 1 . 1 . 2 . 3 . 1 . 0 . 1 . 0 . 1 . 1 . 2 . 1 . 1 .
    4 4 . 1.0 120.0 - 37.8072 144.9941
    6 3 .
    7 2 . 2 . 1 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2 . 1 . 2
    予測は
    [1035000 . 1465000 . 1600000 . 1876000 . 1636000 .]
    から最後のコードをチェックHere
    それは今日のすべてです、我々はコースの半分をカバーし、我々は今後のブログで続きます!
    希望を学び、今モデルを構築する方法を知っている.
    リソースとドキュメント
    1 .Kaggle Course
    2 .W3schools
    3 .Pandas documentation