美文网首页
线性回归

线性回归

作者: 霹雳解锋镝 | 来源:发表于2019-05-24 17:26 被阅读0次

    1、假设
    误差是独立并且具有相同的分布,并且服从均值为0方差b的高斯分布。
    2、评估方法
    R2的值越接近1,则模型拟合越好计算如下:



    3、梯度下降

    目标函数:
    批量梯度下降:每次考虑所有样本,速度慢
    随机梯度下降:每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方法
    小批量梯度下降:一般采用。可以采用32/64/128/256等
    4、Example
    from sklearn import datasets
    from sklearn import linear_model
    from sklearn.model_selection import train_test_split 
    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import r2_score,mean_squared_error
    # 定义数据集
    def dataset_model(x):
        params = np.arange(1,x.shape[-1]+1)
        y = np.sum(params*x)+np.random.randn(1)*0.1
        return y
    X = pd.DataFrame(np.random.rand(1000,6))
    y = X.apply(lambda x_rows:pd.Series(dataset_model(x_rows)),axis=1)
    # 拆分训练集 测试集
    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state = 0)
    # 标准化处理
    ss_x_train = StandardScaler().fit_transform(X_train)
    ss_y_train = StandardScaler().fit_transform(y_train)
    ss_x_test = StandardScaler().fit_transform(X_test)
    ss_y_test = StandardScaler().fit_transform(y_test)
    # 线性回归模型
    lr = linear_model.LinearRegression()
    lr.fit(ss_x_train,ss_y_train)
    p_ret = lr.predict(ss_x_test)
    # 结果评价R2
    r2 = r2_score(ss_y_test, p_ret)
    print (r2)
    mse = mean_squared_error(ss_y_test,p_ret)
    rmse = mse ** (1/2)
    rmse
    

    线性回归

    相关文章

      网友评论

          本文标题:线性回归

          本文链接:https://www.haomeiwen.com/subject/rwagzqtx.html