深く勉強します。詳しくは初めて機械を試して勉強します。

3174 ワード

機械学習は各方面に応用できます。本編はシステム的に機械学習の方向に入る前に、機械学習を初歩的に認識し、線形回帰を利用してボストンの住宅価格を予測します。
原理の概要
線形回帰の最も簡単な形式を利用して住宅価格を予測して、それを一次線形関数y=kx+bとするだけでいいです。私がしたいのは既存のデータを利用して、この直線を勉強して、この直線があったら、ある特徴x(例えば住宅の平均部屋数)の任意の採値に対して、直線的に対応する住宅価格y、つまり模型の予測値を見つけられます。
上記の問題からわかるように、監視学習における復帰問題であり、学習対象のパラメータは実数kと実数b(特徴xは一つしかないので)であり、サンプルセットのサンプルサンプルから一対のデータ(x i,yi)を取り出し、xiをkx+bに代入して出力^y iを得、MSEは予測出力とサンプル表示の近接度を測定することができ、MSEをこの問題の損失関数としている。合計m mmサンプルのセットについて、損失関数は、J(k,b)=1 i=1Σm(yi−yi)2と計算される。
一般的にはデータセットを巡回して反復する必要があります。いい結果が得られます。
ボストンの住宅価格のデータ集
住宅価格の予測の実現はスカイラインに基づいています。スカイラインには様々なデータセットがあります。
  • が持参する小さなデータセット:slearn.dataset.load(*)name>
  • オンラインでダウンロードできるデータセット(Downloaded Dataset):slearn.datasets.fetch(*)name>
  • カスタム生成データセット:slearn.datasets.make(*)name>
  • まずskylearnのデータセットから内蔵データの集中的なすなわちボストンの住宅価格データを取得する。
    
    from sklearn.datasets import load_boston
    他の機能パッケージとモジュールを導入し、線形回帰モデルを導入します。
    
    #   sklearn    train_test_split      
    from sklearn.model_selection import train_test_split
    #    sklearn             
    from sklearn.linear_model import LinearRegression
    #    matplotlib    pyplot      
    import matplotlib.pyplot as plt
    
    読み込みデータセット:
    
    #           ,    X   y
    X, y = load_boston(return_X_y=True)
    X.shape # (506, 13)
    y.shape # (506,)
    特徴をxとして取り出します。
    
    #    6   (     ):       
    #           
    X = X[:,5:6]
    トレーニングセットとテストセットに分けて、テストセットは20%を取ります。
    
    X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=2020)
    slearn.model_に使用します。セレクション.トラッキングtest_スプリット、関数形式は以下の通りです。
    
    train_test_split(train_data, train_target, test_size, random_state,shuffle)
  • test_size:浮動小数点数は、0~1の間でテストサンプルの比率
  • を表します。
  • ランドドムstate:ランダムシードは異なり、呼び出しごとにサンプルが異なります。シードは同じで、呼び出しごとにサンプリングが一致する
  • shuffle=Trueは、サンプルデータの順序を狂わす
  • です。
    厳格に言えば、学習を監督するデータセットはトレーニングセット、検証セット、テストセットに分けられるべきです。トレーニングセットと検証セットには表示があり、テストセットには表示がなく、汎化能力は検証集に検査を行う。
    分割後のトレーニングデータ:
    
    X_train.shape # (404, 1)
    y_train.shape # (404,)
    線形回帰モデルを構築する
    slearnでは、マシン学習モデリングが非常に便利です。
  • 実装モデルは、適切な超パラメータを入力するとモデルの性能が向上します。
  • 入力データトレーニング
  • 検証モデル
  • 線形回帰モデルを作成するには以下の通りです。
    
    #         
    regr = LinearRegression()
    #          
    regr.fit(X_train, y_train)
    #          
    y_pred = regr.predict(X_test)
    モデルがトレーニングデータを受信するまで、最終的に特定の形態を決定することができます。例えば、入力データが発見された場合(404,1)、線形回帰形式はkx+bであり、kx+cx+bではなく、線形回帰形式が決定されます。
    
    #         
    plt.scatter(X_test, y_test,  color='blue')
    #                  
    plt.plot(X_test, y_pred, color='red')
    #       
    plt.show()
    fig1
    プリントモデルのパラメータは(パラメータとパラメータの区別に注意)があります。
    
    #        
    print('  :{},   :{}'.format(regr.coef_,regr.intercept_))
    結果:
     傾き:[9.1163398],パンニング:-34.7557789280662
    ここで初めて機械の勉強についての文章を紹介します。これまでの文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。