机器学习——Day 3 多元线性回归
写在开头
由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客。
学习教程来源于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 多元线性回归相关推荐
- 100天机器学习(100-Days-Of-ML)day3多元线性回归及虚拟变量陷阱分析
本系列为100天机器学习学习笔记.详细请参考下方作者链接: 100天机器学习github: https://github.com/MLEveryday/100-Days-Of-ML-Code Day3 ...
- 09机器学习实战之多元线性回归
基本概念 1. 与简单线性回归区别(simple linear regression) 多个自变量(x) 2. 多元回归模型 y=β0+β1x1+β2x2+ ... +βpxp+ε 其中:β0,β1, ...
- 机器学习--多元线性回归
Logistic回归(分类问题) Logistic/sigmoid函数: 求导数如下所示: 根据导数形式,假设y服从二项分布 Logistic回归参数学习规则: softmax 回归
- [云炬python3玩转机器学习] 5-7,8 多元线性回归正规解及其实现
08 实现我们自己的 Linear Regression import numpy as np import matplotlib.pyplot as plt from sklearn import ...
- 机器学习第3天:多元线性回归
文章目录 一.具体实现步骤 第1步:数据预处理 导入库 导入数据集 将类别数据数字化 躲避虚拟变量陷阱 拆分数据集为训练集和测试集 第2步: 在训练集上训练多元线性回归模型 第3步:在测试集上预测结果 ...
- 机器学习 回归篇(1)——多元线性回归
机器学习 回归篇(1)--多元线性回归 摘要 线性回归简介 python实现 运行结果及可视化 摘要 本文介绍了最基础的回归问题--多元线性回归,并通过python进行实现及可视化展示运行结果. 线性 ...
- 【机器学习】线性回归之梯度下降、多元线性回归概述
线性回归是一种监督学习方法. 对每个样本来说: Hypothesis: 即: 其中, 为预测值, 为样本的第i个特征,且: 为该特征下的权重,bias偏差.线性回归就是要在已有的样本特征和标签下学 ...
- 机器学习多元线性回归_过度简化的机器学习(1):多元回归
机器学习多元线性回归 The term machine learning may sound provocative. Machines do not learn like humans do. Ho ...
- 吴恩达机器学习(二)多元线性回归(假设、代价、梯度、特征缩放、多项式)
目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 4. 特征缩放(Feature Scalin ...
最新文章
- php jwt token过期时间,php – 动态设置laravel jwt的到期时间
- LeetCode Arranging Coins
- php记录网站访问,PHP简单实现记录网站访问量的功能
- 20个很酷的CSS3导航菜单制作教程
- 学徒学计算机,那个有能力的高人愿意收我做学徒啊,我是学计算机的
- gateway 车辆网关
- 细胞增殖曲线_两种月龄近交系五指山小型猪脂肪间充质干细胞生物学特性的比较...
- java day49【综合案例day01】
- 49.Linux/Unix 系统编程手册(下) -- 内存映射
- iphone ios 手势
- Pr入门系列之二:导入与管理素材
- 基于springboot网上商城交易平台源码
- html表格中怎么将背景颜色虚化,如何在Photoshop中制作效果惊艳模糊背景!
- localStorage使用实例-进入显示广告,点击关闭之后,刷新网页不再出现
- html ppt播放音乐,PPT怎么控制音乐暂停后继续播放?
- QQ邮箱IMAP/SMTP服务,设置 未成功原因
- 【C++实现】编译原理 免考小队 FIRSTVT集生成算法
- 我的世界虚拟人生可以在服务器玩吗,我的世界虚拟人生全方位攻略 虚拟人生玩法介绍...
- c++ abs 取绝对值函数
- fiddler安装和使用