ここでは、まず、次の式を見てみましょう。
私たちは、この式は、我々は統計に接触高校の数学には見知らぬ人ではありません見ると信じて、私たちは多くの場合、予測値を算出するために上記の式を使用し、上記の方法は、最小二乗法、単純な線形回帰と呼ばれています。
これを行うには、戻って、特別な高校の数学を見直します。最小二乗法は、実際には、このラインとの最短距離に私たちのトレーニングデータセットを作り、直線を見つけることです。参考特定の式が導出される:最小二乗
上記式で、我々は、式、APIの形態Aバイナリ線形回帰アルゴリズムによってカプセル化することができます
import numpy as np
class SimpleLinearRegression1:
def __init__(self):
self.a_ = None
self.b_ = None
def fit(self, x_train, y_train):
assert x_train.ndim == 1,\
"Simple LinearRegressor can only solve single feature training data"
assert len(x_train) == len(y_train), \
"the size of x_train must be equal to the size of y_train"
x_mean = np.mean(x_train)
y_mean = np.mean(y_train)
num = (x_train - x_mean).dot(y_train - y_mean)
d = (x_train - x_mean).dot(x_train - x_mean)
self.a_ = num / d
self.b_ = y_mean - self.a_ * x_mean
return self
def predict(self, x_predict):
assert x_predict.ndim == 1, \
"Simple Linear regressor can only solve single feature training data"
assert self.a_ is not None and self.b_ is not None, \
"must fit before predict!"
return np.array([self._predict(x) for x in x_predict])
def _predict(self, x_single):
return self.a_ * x_single + self.b
def __repr__(self):
return"SimpleLinearRegression1()"_
私たち自身の線形回帰アルゴリズムパッケージ良い、我々はバイナリを予測するための線形特性データを持つことができます。テストデータは、私たちはしばしば私たちの予測の予測効果を評価するためにいくつかの指標を使用する場合:
MAE(平均絶対誤差)
和MAEはテストデータ値の差という予測の実際の値であっても、平均値の絶対値を参照することは容易です。当社は、予測された結果とのずれの大きさの実際の結果を計算することができます。
MSE(平均二乗誤差)
実際の絶対値の二乗平均の平均二乗誤差は、差分値とテストデータ合計の予測値です。
R ^ 2(決意の係数)(最良の結果)
以下の推定により推定、R ^ 2(1-MAEは/ var(分散))のように表すことができる
私は教育ビデオを見る、ボストン(予測データレートとして採用しました我々はまた)気持ちの良いの話、私は教育ビデオを参照してください、次のWebサイトを訪問することができます
コード表示
import matplotlib.pyplot as plt
from sklearn import *
from Simple_LR_class import SimpleLinearRegression1
boston = datasets.load_boston()
x = boston.data[:, 5]
y = boston.target
x = x[y < 50.0]
y = y[y < 50.0]
x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y)
lr_clf = SimpleLinearRegression1()
lr_clf.fit(x_train, y_train)
y_predict = lr_clf.predict(x_test)
plt.scatter(x_train, y_train)
plt.plot(x_train, lr_clf.predict(x_train), color='r')
plt.plot(x_test, lr_clf.predict(x_test), color='g')
MAE = metrics.mean_absolute_error(y_test, y_predict)
MSE = metrics.mean_squared_error(y_test, y_predict)
R_square = metrics.r2_score(y_test, y_predict)
print(MSE)
print(MAE)
print(R_square)
plt.show()
私たちは、直線と予測された結果をフィッティングの効果を見ることができます:
読者はそれが私の公共のを見ることができるように、参考にしたい、私は上記の中で作られたノートを勉強します、私たちは一緒に学ぶことができるようになります!