机器学习(7)- 线性回归

1.11 交叉验证,网格搜索[****]

  • 交叉验证

    • 目的: 为了提高模型训练结果可信度, 可以提高模型的范化能力.
    • 步骤:
      • 把数据集划分为 训练集 和 测试集
      • 把训练集划分为 训练集 和 验证集
      • 什么是n交叉验证:
        • 把训练集分成n等份, 每轮选择其中一份做验证集, 其他作为训练集, 训练n轮.
        • 一般n选择为10.
  • 网格搜索

    • 作用: 模型选择参数调优, 选择出来比较好的超参数.
    • 超参数: 在进行模型训练的时候, 需要手动指定的参数. 举例: KNN中的k值就是超参数
  • 网格搜索与交叉验证

    • API: sklearn.model_selection.GridSearchCV(estimator, param_grid, cv)
    • 参数
      • estimtor: 需要进行参数调优的评估器
      • param_grid, 字典格式超参数列表
      • cv: 几折交叉验证
    • 方法
      • fit
      • predict
      • score
    • 交叉验证相关的属性
      • best_score_: 交叉验证最好的准确率
      • best_estimator: 交叉验证最好的模型
      • cv_results_: 交叉验证的结果.

1.11 案例:facebook位置预测[***]

  • 步骤:

    1. 加载数据
    2. 数据基本处理
      1. 减少数据规模, 为了演示方便(实际中不要这么做)
      2. 选择有效的时间特征, 把单位为秒的时间戳, 该为天, 星期, 小时
      3. 去掉签到比较少的地方
      4. 确定特征值和目标值
      5. 分割数据集
    3. 特征工程-特征预处理-标准化
    4. 机器学习(KNN+GridSearchCV)
    5. 模型评估
    # 2. 数据基本处理
    #   2.1 缩小数据规模(只是为了演示方便, 实际中不要这个做)
    facebook_data = data.query('x>2.0&x<2.5&y>2.0&y<2.5')
    # facebook_data
    #  2.2 选择有效的时间特征
    date_time = pd.to_datetime(facebook_data['time'], unit='s')
    date = pd.DatetimeIndex(date_time)
    facebook_data['day'] = date.day
    facebook_data['weekday'] = date.weekday
    facebook_data['hour'] = date.hour
    # facebook_data
    # 2.3 去掉签到比较少的地方
    place_id_counts = facebook_data.groupby('place_id').count()
    place_id = place_id_counts.query('row_id>5')
    # facebook_data 中筛选place_id里面的地方
    facebook = facebook_data[facebook_data['place_id'].isin(place_id.index)]
    #   2.4 确定特征值和目标
    x = facebook[['x','y','accuracy','day','weekday', 'hour']]
    y = facebook['place_id']
    #   2.5 分割数据集
    
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=8)
    

2.线性回归

2.1 线程回归简介
  • 定义: 使用回归方程对一个自变量或多自变量(特征) 和 因变量(目标值) 建模一种方式.
  • 通用公式: h ( θ ) = θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + . . . + θ n x n + b h(\theta) = \theta_1x_1 + \theta_2x_2 + \theta_3x_3 + ... + \theta_nx_n + b h(θ)=
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值