写在开头

由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客。

学习教程来源于github的Avik-Jain的100-Days-Of-MLCode

英文版:https://github.com/Avik-Jain/100-Days-Of-ML-Code

中文翻译版:https://github.com/MLEveryday/100-Days-Of-ML-Code

本人新手一枚,所以学习的时候遇到不懂的会经常百度,查看别人的博客现有的资料。但是由于不同的人思维和写作风格都不一样,有时候看到一些长篇大论就不想看,杂乱不想看(实力懒癌患者+挑剔)。看到别人写的不错的就不想再费时间打字了,所以勤奋的找了自认为简洁明了的文章分享在下面,希望能帮助到大家。

注意这是一篇记录博客,非教学。

数据部分截图:

Step 1:数据预处理

部分详情请看前两篇:

Day1: https://www.cnblogs.com/hidari26/p/10923822.html

Day2:https://www.cnblogs.com/hidari26/p/10927574.html

#导入库
import pandas as pd
import numpy as np
#导入数据集
dataset = pd.read_csv('50_Startups.csv')
print(dataset[:10])
X = dataset.iloc[ : , :-1].values
Y = dataset.iloc[ : , 4].values
#将类别数据数字化
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X[ : , 3] = labelencoder.fit_transform(X[ : , 3])
onehotencoder = OneHotEncoder(categorical_features = [3])
X = onehotencoder.fit_transform(X).toarray()

#躲避虚拟变量陷阱
X1 = X[ : , 1: ]

虚拟变量的内容在图片中有说明,这里不重复。

说实话,这里我不是很懂。这里居然采用的是去掉第一列的数据???有人能告诉我是为什么吗?

#拆分数据集为训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)
X1_train, X1_test, Y1_train, Y1_test = train_test_split(X1, Y, test_size = 0.2, random_state = 0)

Step 2: 在训练集上训练多元线性回归模型

这里和简单线性回归模型一样使用就好了。

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)
regressor1 = LinearRegression()
regressor1.fit(X1_train, Y1_train)

Step 3: 在测试集上预测结果

Y_pred表示原始预测结果,Y1_pred表示躲避虚拟变量陷阱后的预测结果。

Y_pred = regressor.predict(X_test)
Y1_pred = regressor1.predict(X1_test)
print(Y_pred)
print(Y1_pred)

Step 4: 输出误差

最后我们比较一下两个数据哪个得出的模型更好,更精确。这里介绍一个新的类  sklearn.metrics.r2_score 相关指数R2(也称决定系数 coefficient of determinantion), 表示一元多项式回归方程拟合度的高低,或者说表示一元多项式回归方程估测的可靠程度的高低。越接近1,模型越好;越接近0,模型越差。

英文说明:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html

from sklearn.metrics import r2_score
print(r2_score(Y_test, Y_pred))
print(r2_score(Y1_test, Y1_pred))

0.9347068473282246

0.9347068473282292

可一看出,虽然差别不大,但是Y1_pred更精确一些。

总结

这一章的内容和上一章相似,主要在数据预处理时,有必要的话编辑虚拟变量并注意避免虚拟变量陷阱。至于这里为什么采用这种方式避免虚拟变量陷阱,不懂啊~

欢迎评论中提问,相关问题将在此更新!

转载于:https://www.cnblogs.com/hidari26/p/10940988.html

机器学习——Day 3 多元线性回归相关推荐

  1. 100天机器学习(100-Days-Of-ML)day3多元线性回归及虚拟变量陷阱分析

    本系列为100天机器学习学习笔记.详细请参考下方作者链接: 100天机器学习github: https://github.com/MLEveryday/100-Days-Of-ML-Code Day3 ...

  2. 09机器学习实战之多元线性回归

    基本概念 1. 与简单线性回归区别(simple linear regression) 多个自变量(x) 2. 多元回归模型 y=β0+β1x1+β2x2+ ... +βpxp+ε 其中:β0,β1, ...

  3. 机器学习--多元线性回归

    Logistic回归(分类问题) Logistic/sigmoid函数: 求导数如下所示: 根据导数形式,假设y服从二项分布 Logistic回归参数学习规则: softmax 回归

  4. [云炬python3玩转机器学习] 5-7,8 多元线性回归正规解及其实现

    08 实现我们自己的 Linear Regression import numpy as np import matplotlib.pyplot as plt from sklearn import ...

  5. 机器学习第3天:多元线性回归

    文章目录 一.具体实现步骤 第1步:数据预处理 导入库 导入数据集 将类别数据数字化 躲避虚拟变量陷阱 拆分数据集为训练集和测试集 第2步: 在训练集上训练多元线性回归模型 第3步:在测试集上预测结果 ...

  6. 机器学习 回归篇(1)——多元线性回归

    机器学习 回归篇(1)--多元线性回归 摘要 线性回归简介 python实现 运行结果及可视化 摘要 本文介绍了最基础的回归问题--多元线性回归,并通过python进行实现及可视化展示运行结果. 线性 ...

  7. 【机器学习】线性回归之梯度下降、多元线性回归概述

    线性回归是一种监督学习方法.  对每个样本来说: Hypothesis: 即: 其中, 为预测值, 为样本的第i个特征,且:  为该特征下的权重,bias偏差.线性回归就是要在已有的样本特征和标签下学 ...

  8. 机器学习多元线性回归_过度简化的机器学习(1):多元回归

    机器学习多元线性回归 The term machine learning may sound provocative. Machines do not learn like humans do. Ho ...

  9. 吴恩达机器学习(二)多元线性回归(假设、代价、梯度、特征缩放、多项式)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 4. 特征缩放(Feature Scalin ...

最新文章

  1. php jwt token过期时间,php – 动态设置laravel jwt的到期时间
  2. LeetCode Arranging Coins
  3. php记录网站访问,PHP简单实现记录网站访问量的功能
  4. 20个很酷的CSS3导航菜单制作教程
  5. 学徒学计算机,那个有能力的高人愿意收我做学徒啊,我是学计算机的
  6. gateway 车辆网关
  7. 细胞增殖曲线_两种月龄近交系五指山小型猪脂肪间充质干细胞生物学特性的比较...
  8. java day49【综合案例day01】
  9. 49.Linux/Unix 系统编程手册(下) -- 内存映射
  10. iphone ios 手势
  11. Pr入门系列之二:导入与管理素材
  12. 基于springboot网上商城交易平台源码
  13. html表格中怎么将背景颜色虚化,如何在Photoshop中制作效果惊艳模糊背景!
  14. localStorage使用实例-进入显示广告,点击关闭之后,刷新网页不再出现
  15. html ppt播放音乐,PPT怎么控制音乐暂停后继续播放?
  16. QQ邮箱IMAP/SMTP服务,设置 未成功原因
  17. 【C++实现】编译原理 免考小队 FIRSTVT集生成算法
  18. 我的世界虚拟人生可以在服务器玩吗,我的世界虚拟人生全方位攻略 虚拟人生玩法介绍...
  19. c++ abs 取绝对值函数
  20. fiddler安装和使用

热门文章

  1. java 删除图形界面_Java图形化界面报错?
  2. mysql支持ASCII_MySQLASCII()函数返回字符的ASCII码值
  3. 轻量在线人工客服系统 支持多商家+自动适配移动端
  4. phpVX活码系统源码
  5. 第四版源码技术导航网自适应
  6. 两款cpu型号【E7400VSe8400】的对比。
  7. 移动开发在路上-- IOS移动开发系列 多线程三
  8. 简单易懂的破解脱壳从0开始
  9. windows环境下memcache服务器使用经验
  10. Linux: 近100个常用命令大全