精通数据科学:从线性回归到深度学习(笔记):第四章 线性回归

本文从机器学习和统计学两个角度探讨线性回归。介绍了如何确定场景类型,定义损失函数,提取特征,确定模型形式并估计参数。讨论了模型陷阱,包括过度拟合和模型幻觉,提出了假设检验和惩罚项作为解决方案。
摘要由CSDN通过智能技术生成

验旧 制作玩偶数量和成本之间的关系

从机器学习的角度看这个问题

确定场景类型:

(1)我们需要通过生产个数的信息去预测生产成本,而在数据里面,已经有需要被模型预测的量,所以这是一个监督式学习。(2)需要被预测的成本y_{i}是一个数量额。它是一个连续变化的量,而并非表示类别的离散量,所以这是一个回归问题。

定义损失函数:

定义一个损失函数(真实值与预测值之间的欧氏距离平方和)。模型参数的估计依赖于这个损失函数。

提取特征:

(1)数据可以直接使用。

(2)变量本身的数学运算是有意义的,可以直接使用(3)可以对X做某种数学变换,得到一个新的特征,比如对它做平方变换。

确定模型形式并估计参数:

(1)根据分析,x_{i}y_{i}之间是线性关系。

(2)定义模型公式:\widetilde{y_{i} }= ax_{i} + b

(3)参数(\widetilde{a},\widetilde{b})的估计值将使损失函数达到最小值。

代码:

# -*- coding: UTF-8 -*-
"""
此脚本用于展示使用sklearn搭建线性回归模型
"""
import os
import sys

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import linear_model
def evaluateModel(model, testData, features, labels):
"""
计算线性模型的均方差和决定系数

参数
----
model : LinearRegression, 训练完成的线性模型

testData : DataFrame,测试数据

features : list[str],特征名列表

labels : list[str],标签名列表

返回
----
error : np.float64,均方差

score : np.float64,决定系数
"""
# 均方差(The mean squared error),均方差越小越好
error = np.mean(
    (model.predict(testData[features]) - testData[labels]) ** 2)
# 决定系数(Coefficient of determination),决定系数越接近1越好
score = model.score(testData[features], testData[labels])
return error, score
def visualizeModel(model, data, features, labels, error, score):
    """
    模型可视化
    """
        # 为在Matplotlib中显示中文,设置特殊字体
    plt.rcParams['font.sans-serif']=['SimHei']
    # 创建一个图形框
    fig = plt.figure(figsize=(6, 6), dpi=80)
    # 在图形框里只画一幅图
    ax = fig.add_subplot(111)
    # 在Matplotlib中显示中文,需要使用unicode
    # 在Python3中,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值