AI bootcamp DAY23

5052 ワード

せんけいかいきせんけいかいき

  • 線形回帰モデル
  • を理解する
    理解
  • 指導的学習支援学習
  • 回帰モデルのデータムモデル
  • を設定する.
  • Schikit-Learningを用いて線形回帰モデルを構築し、
  • を使用/解釈した.

    1.データのロード

    1-1. df = pd.read_csv('')
    1-2. df = head()
    1-3. 사용할 특성 select 
    
      target = df[['Happiness']]
      df = df[['Nation', 'GDP', 'Happiness']]
      df_t = df[['Nation', 'GDP']]
    
    1-4. df['Happiness].describe()
    1-5(추가) 확률밀도함수, 평균과, 수직선 확인하여 평균 시각적으로 확인 
    
    	import matplotlib.pyplot as plt
    	import seaborn as sns
    
    SalePrice의 확률밀도함수를 그려보겠습니다
    	sns.displot(df['SalePrice'], kde=True)
    
    평균과, 중간값으로 수직선을 그려보겠습니다.
    	plt.axvline(df['SalePrice'].mean(), color='blue')
    	plt.axvline(df['SalePrice'].median(), color='red');

    2.データムモデルベースラインモデル

  • 予測モデルを具体的に作成する前に、標準モデルは最も簡単で直感的な最低性能基準である.
  • の平均値を基準として、平均基準モデル
  • と呼ぶことができる.

  • 注意:分類問題=ターゲットの空きクラス;回帰問題=ターゲットの平均値;クロック列回帰問題=古いタイムスタンプの値
    2-1. 予測:標準モデルとしての平均予測
       predict = df['Happiness'].mean()   
    2-2. 平均値で予測する場合、各例の平均値との差異(error)が格納される
       errors = predict - df['Happiness']
    2-3. Mean Absolute Error,errorに対して絶対値を取った後に平均計算を行う
    平均絶対誤差(MAE)は予測誤差の絶対値平均である
      mean_absolute_error = errors.abs().mean()

  • 平均エラーがかなり大きいことが確認できます.平均するとMAEが大きすぎるという意味です

    3.予測モデルによる予測モデル


    Scatterplotに最適なフィット直線を描画し、回帰予測モデルになります.
  • 回帰直線はどうしますか?

  • 予測=作成したモデルの推定値

  • 残差=予測値と観測値の違い

  • エラー
    回帰線は残差二乗とRSSを最小化する直線である.RSSは、回帰モデルのコスト関数となるSquare Error(Sum of Square Error)とも呼ばれる.マシン学習では、コスト関数の最小化モデルを探す方法を学習します.

    ここで,∂とbetaはRSS最小化の値であり,モデル学習により得られた値である.この残差二乗と最小化の方法を最小二乗回帰またはOrdinary最小二乗(OLS)と呼ぶ.

  • 線形回帰は、補間補間補間によって、指定されていない点の関数値を予測するのに役立ちます.線形回帰はまた、データ範囲を超える値を予測するために外挿(外挿)を提供する.
  • の予測方法
    線形回帰直線は独立変数因変数,Xと因変数,Yの関係を要約する
    依存変数は、反応応答変数、ラベル、ターゲットターゲットターゲットなどと呼ばれる.
    独立変数は、予測予測予測変数、表示説明、および特性特徴
  • と称する.

    3-1 scikit-learningを使用して線形回帰モデルを構築


  • プロパティデータとターゲットデータの配布
  • 特性行列は主にxで表され、通常は2次元行列([n samples,n feature])である.
  • は、Numpy行列またはPandasデータフレームとして表される
  • ターゲットアレイは主にyとして表現され、通常は1次元(nサンプル)である.
  • NumpyアレイまたはPandasシリーズ構造を採用
  • scikit-learnは、類似のプロセスによって提供される多くの機械学習モデルを実施している.
    (1)解題に適したモデルを選択し,クラスを参照し,関連属性またはスーパーパラメータを決定する.
    (2)データ前処理
    (3)fit()メソッドを用いてモデルを学習する
    (4)予測()メソッドを用いて新しいデータを予測する
  • 3-2. 単純線形回帰


    from sklearn.linear_model import LinearRegression
    3-3. Xプロパティテーブルとyターゲットバックエンドの作成
    feature = ['GDP']
    target = ['Happiness']
    X_train = df[feature]
    y_train = df[target]
    3-4. 勉強はモデルに向いている.
    model.fit(X_train, y_train)
    LinearRegression()
    3-5. 新しいデータサンプルを選択し,学習モデルにより予測する
    X_test = [[4000]]
    y_pred = model.predict(X_test)
    3-6. モデルによるテストデータ全体の予測
    X_test = [[x] for x in df_t['GDP']]
    y_pred = model.predict(X_test)

    3-7. 線形回帰モデルの係数係数

  • モデルはGDPとHappinessの間でどんな関係を学びましたか?
    この質問に答えるには、LinearRegressionオブジェクトのcoef、interceptプロパティを確認します.

  • 係数Coefficient
    model.coef_

  • カットアウト
    :座標平面上の直線がx軸と交差する点のx座標とy軸と交差する点のy座標.
    modelintercept_
    3-8. 予測関数を作成し、新しいデータを繰り返し予測し、係数の影響を説明します.
    	def explain_prediction(usd):
        	y_pred = model.predict([[usd]])
            pred = f"{int(sqft)} sqft 주택 가격 예측: ${int(y_pred[0])} (1 usd당 추가 GDP: ${int(model.coef_[0])
    		return pred
            
            
  • 3-9. gdp usd=4000のテストデータ
    	print(explain_prediction(4000))
    4000ドルの幸福予測:447090ドル(1ドル当たりの追加幸福:107ドル)
    番外
    from ipywidgets import interact
    アクセラレータインタラクションを追加します.
    @interact
        def explain_prediction(sqft=(500,10000)):
            y_pred = model.predict([[sqft]])
            pred = f"{int(sqft)} sqft 주택 가격 예측: 			${int(y_pred[0])} (1 sqft당 추가금: ${int(model.coef_[0]
        return pred
    
    interactive(children=(IntSlider(value=5250, description='sqft', max=10000, min=500), Output())