深く勉強します。詳しくは初めて機械を試して勉強します。
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のデータセットから内蔵データの集中的なすなわちボストンの住宅価格データを取得する。 test_size:浮動小数点数は、0~1の間でテストサンプルの比率 を表します。ランドドムstate:ランダムシードは異なり、呼び出しごとにサンプルが異なります。シードは同じで、呼び出しごとにサンプリングが一致する 。 shuffle=Trueは、サンプルデータの順序を狂わす です。
厳格に言えば、学習を監督するデータセットはトレーニングセット、検証セット、テストセットに分けられるべきです。トレーニングセットと検証セットには表示があり、テストセットには表示がなく、汎化能力は検証集に検査を行う。
分割後のトレーニングデータ:
slearnでは、マシン学習モデリングが非常に便利です。実装モデルは、適切な超パラメータを入力するとモデルの性能が向上します。 入力データトレーニング 検証モデル 線形回帰モデルを作成するには以下の通りです。
プリントモデルのパラメータは(パラメータとパラメータの区別に注意)があります。
傾き:[9.1163398],パンニング:-34.7557789280662
ここで初めて機械の勉強についての文章を紹介します。これまでの文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
原理の概要
線形回帰の最も簡単な形式を利用して住宅価格を予測して、それを一次線形関数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と計算される。
一般的にはデータセットを巡回して反復する必要があります。いい結果が得られます。
ボストンの住宅価格のデータ集
住宅価格の予測の実現はスカイラインに基づいています。スカイラインには様々なデータセットがあります。
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)
厳格に言えば、学習を監督するデータセットはトレーニングセット、検証セット、テストセットに分けられるべきです。トレーニングセットと検証セットには表示があり、テストセットには表示がなく、汎化能力は検証集に検査を行う。
分割後のトレーニングデータ:
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()
プリントモデルのパラメータは(パラメータとパラメータの区別に注意)があります。
#
print(' :{}, :{}'.format(regr.coef_,regr.intercept_))
結果:傾き:[9.1163398],パンニング:-34.7557789280662
ここで初めて機械の勉強についての文章を紹介します。これまでの文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。