掌握基本的回归模型

2021-03-19  本文已影响0人  Cherryone

1. 使用sklearn构建完整的机器学习项目流程

机器学习项目的步骤有如下几步:

明确项目任务:回归/分类

收集数据集并选择合适的特征。

选择度量模型性能的指标。

选择具体的模型并进行训练以优化模型。

评估模型的性能并调参。

2. 选择具体的模型并训练

2.1 线性回归模型

回归分析:研究的是因变量(目标)和自变量(特征)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系

线性回归模型:假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w

2.2 线性回归的推广

2.3 回归树(决策树)

回归树:依据分层和分割的方式将特征空间划分为一系列简单的区域。对某个给定的待预测的自变量,用他所属区域中训练集的平均数或者众数对其进行预测

优点:解释性强、更接近人的决策方式、用图来表示、直接做定性的特征、很好处理缺失值和异常值

缺点:对异常值不敏感、预测准确性一般无法达到其他回归模型的水平

2.4 支持向量机回归(SVR)

3. 实战练习:使用sklearn构建完整的回归项目

本例使用sklearn内置数据集:糖尿病数据集

# 引入相关科学计算包

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

plt.style.use("ggplot")     

import seaborn as sns

3.1 选择合适的特征

from sklearn import datasets

# sklearn内置数据集:糖尿病数据集

# 返回一个类似于字典的类

diabetes = datasets.load_diabetes()

X = diabetes.data

y = diabetes.target

features = diabetes.feature_names

diabetes_data = pd.DataFrame(X,columns=features)

diabetes_data['disease_progression'] = y

diabetes_data.head()

3.2 线性回归模型

# 引入线性回归方法

from sklearn import linear_model

# 创建线性回归的类

lin_reg = linear_model.LinearRegression()   

# 输入特征X和因变量y进行训练

lin_reg.fit(X,y)

# 输出模型的系数

print("糖尿病数据集的线性回归模型系数:",lin_reg.coef_)

# 输出模型的决定系数R^2

print("糖尿病数据集的线性回归模型得分:",lin_reg.score(X,y))   

3.3 决策树模型

from sklearn.tree import DecisionTreeRegressor   

reg_tree = DecisionTreeRegressor(criterion = "mse",min_samples_leaf = 5)

reg_tree.fit(X,y)

print("糖尿病数据集的决策树模型得分:",reg_tree.score(X,y))

3.4 SVR模型

from sklearn.svm import SVR

from sklearn.preprocessing import StandardScaler    # 标准化数据

from sklearn.pipeline import make_pipeline 

# 使用管道,把预处理和模型形成一个流程

reg_svr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))

reg_svr.fit(X, y)

print("糖尿病数据集的SVR模型得分:",reg_svr.score(X,y))

上一篇 下一篇

猜你喜欢

热点阅读