Python 笔记 MachineLearning Stage 3

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, classification_report, roc_auc_score, silhouette_score
import joblib
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans


def linear_regression():
    """
    线性回归
    y = w1x1 + w2x2 + ... + wnxn + b(偏质)
      = wTx + b

    线性关系一定是线性模型
    线性模型不一定是线性关系‘

    真实值与预测值之间的差距衡量关系 : cost 损失函数/成本函数/目标函数
    总损失 : J(Θ) = ∑(hw(xi)-yi)²  最小二乘法

    优化使损失减小, 接近真实值 :
    1.正规方程
    w = XTy / (XTX)
    直接求得w
    sklearn.linear_model.LinearRegression(fit_intercept=True)
    通过正规方程优化
    fit_intercept: 是否计算偏置
    LinearRegression.coef_: 回归系数
    LinearRegression.intercept_: 偏置
    小规模数据

    2.梯度下降
    不断迭代w
    sklearn.linear_model.SGDRegression(loss="squared_loss", fit_intercept=True, learning_rate="invscaling", eta0=0.01)
    实现了随机梯度下降学习, 支持不同的loss函数和正则化惩罚项来拟合线性回归模型
    loss: 损失类型, "squared_loss" 普通最小二乘法
    fit_intercept: 是否计算偏置
    learning_rate: 学习率填充 "constant" "optimal" "invscaling"
                   对一个常数值的学习率来说, 可以使用learning_rate="constant", 并使用eta0来指定学习率
    SGDRegression.coef_: 回归系数
    SGDRegression.intercept_: 偏置

    回归性能评估: 均方误差(Mean Squared Error)评价机制
                 MSE = 1/m * ∑(yi-yba)²
    sklearn.metrics.mean_squared_error(y_true, y_pred)
    均方误差回归损失
    y_true: 真实值
    y_pred: 预测值
    return: 浮点数结果
    大规模数据

    拓展: 优化梯度下降
    GD Gradient Descent, 梯度下降, 原始的梯度下降法需要计算所有的样本值, 计算量大

    SGD Stochastic GD, 随机梯度下降, 一次迭代只考虑一个训练样本
    优点: 高效, 容易实现
    缺点: 需要许多超参数(正则参数, 迭代数), 对于特征标准化很敏感

    SAG Stochastic Average D, 随机平均梯度, 岭回归, 逻辑回归中都有SAG优化

    :return:
    """

    # 案例: 波士顿房价预测

    # 获取数据
    data_url = "http://lib.stat.cmu.edu/datasets/boston"
    ra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值