R|机器学习入门-多元线性回归(3)

简介: R|机器学习入门-多元线性回归(3)

回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。本文简单的介绍一下多元线性回归。

Multiple Linear Regression

Data Preprocessing

1 读入数据集

# 导入数据

setwd("C:\\Users\\****\\Documents\\ML\\day3\\")
dataset = read.csv('50_Startups.csv')
head(dataset)
  R.D.Spend Administration Marketing.Spend      State   Profit
1  165349.2      136897.80        471784.1   New York 192261.8
2  162597.7      151377.59        443898.5 California 191792.1
3  153441.5      101145.55        407934.5    Florida 191050.4
4  144372.4      118671.85        383199.6   New York 182902.0
5  142107.3       91391.77        366168.4    Florida 166187.9
6  131876.9       99814.71        362861.4   New York 156991.1

2 数据预处理

# 虚拟变量
dataset$State = factor(dataset$State,
                       levels = c('New York', 'California', 'Florida'),
                       labels = c(1, 2, 3))

3 训练集和测试集

将数据按照4:1拆分,每一组分别包含自变量和因变量

# install.packages('caTools')
library(caTools)
set.seed(123)
split = sample.split(dataset$Profit, SplitRatio = 0.8)
training_set = subset(dataset, split == TRUE) # 多自变量
test_set = subset(dataset, split == FALSE) # 单因变量
dim(training_set)
[1] 40  5
dim(test_set)
[1] 10  5

4 模型拟合及预测

通过训练集进行模型拟合得到曲线,然后将测试集的X_test带入曲线中,得到预测结果y_pred,最后将预测结果y_pred与测试集中的y_test进行比较,确定预测是否准确。


4.1 多重线性回归

regres = lm(formula = Profit ~ R.D.Spend + Administration + Marketing.Spend + State,
               data = training_set)
summary(regres)
Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)      4.965e+04  7.637e+03   6.501 1.94e-07 ***
R.D.Spend        7.986e-01  5.604e-02  14.251 6.70e-16 ***
Administration  -2.942e-02  5.828e-02  -0.505    0.617    
Marketing.Spend  3.268e-02  2.127e-02   1.537    0.134    
State2           1.213e+02  3.751e+03   0.032    0.974    
State3           2.376e+02  4.127e+03   0.058    0.954    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

4.2 进行逐步回归分析

regres.step <- step(regres) 
Step:  AIC=735.89
Profit ~ R.D.Spend + Marketing.Spend
                  Df  Sum of Sq        RSS    AIC
<none>                          3.3627e+09 735.89
- Marketing.Spend  1 3.1338e+08 3.6761e+09 737.45
- R.D.Spend        1 2.3344e+10 2.6706e+10 816.77
regres2 = lm(formula = Profit ~ R.D.Spend +  Marketing.Spend ,
               data = training_set)

4.3 预测结果

y_pred = predict(regres2, newdata = test_set)
y_pred
        4         5         8        11        16        20        21        24 
173687.21 171299.96 160499.08 134783.16 145873.04 114467.75 117025.30 110369.71 
       31        32 
 98447.39  97668.22 
test_set$Profit
 [1] 182901.99 166187.94 155752.60 146121.95 129917.04 122776.86 118474.03 108733.99
 [9]  99937.59  97483.56

4.4 结果可视化

plot(test_set$Profit,col="red")
points(y_pred,col="blue")

相关文章
|
22天前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
58 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
30天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
2月前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
46 2
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
38 1
|
2月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
71 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
41 0
|
3月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
29 1