机器学习——Day 2 简单线性回归
写在开头
由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客。
学习教程来源于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
本人新手一枚,所以学习的时候遇到不懂的会经常百度,查看别人的博客现有的资料。但是由于不同的人思维和写作风格都不一样,有时候看到一些长篇大论就不想看,杂乱不想看(实力懒癌患者+挑剔)。看到别人写的不错的就不想再费时间打字了,所以勤奋的找了自认为简洁明了的文章分享在下面,希望能帮助到大家。
注意这是一篇记录博客,非教学。
第一步:数据预处理
关于这一步的具体说明在Day1讲过了,详情请看:https://www.cnblogs.com/hidari26/p/10923822.html。
这里导入我们需要的库,值得注意的是,这里比第一天多了一个matplotlib.pyplot,matplotlib是python上的一个2D绘图库, matplotlib下的模块pyplot是一个有命令样式的函数集合, matplotlib.pyplot是为我们对结果进行图像化作准备的。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : , : 1].values
Y = dataset.iloc[ : , 1 ].values
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 1/4, random_state = 0)
接下来只要具体掌握如何使用sklearn.linear_model中的LinearRegression类,使用训练集做简单线性回归得到回归函数,通过回归函数使用测试集做出预测结果。
相关学习可参考:https://www.cnblogs.com/magle/p/5881170.html
英文参考:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
第二步:训练集使用简单线性回归模型来训练
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
第三步:预测结果
Y_pred = regressor.predict(X_test)
关于matplotlib,自认为以下代码本身就通俗易懂。但显然这些类的用法不止如此,所以找了一些资料,有兴趣的可以看看。
散点图:
英文说明:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html
中文说明(以下两个差别不大,都有案例):
https://blog.csdn.net/m0_37393514/article/details/81298503
https://blog.csdn.net/qiu931110/article/details/68130199
线图:
英文说明:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html
中文说明:https://blog.csdn.net/u014539580/article/details/78207537
matplotlib.pyplot :
英文说明:https://matplotlib.org/tutorials/introductory/pyplot.html#
中文说明(plt的一些函数):https://blog.csdn.net/qiurisiyu2016/article/details/80187177
第四步:可视化
#散点图
plt.scatter(X_train, Y_train, color = 'red')
#线图
plt.plot(X_train, regressor.predict(X_train), 'bo-')
plt.show()
#散点图
plt.scatter(X_test, Y_test, color = 'red')
#线图
plt.plot(X_test, Y_pred, 'bo-')
plt.show()
总结
这一章的内容较少,理解难度也较少,所以没什么好说的了。
欢迎评论中提问,相关问题将在此更新!
机器学习——Day 2 简单线性回归的更多相关文章
- 机器学习与Tensorflow(1)——机器学习基本概念、tensorflow实现简单线性回归
一.机器学习基本概念 1.训练集和测试集 训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集 测试集(test ...
- 机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE
前文再续书接上一回,机器学习的主要目的,是根据特征进行预测.预测到的信息,叫标签. 从特征映射出标签的诸多算法中,有一个简单的算法,叫简单线性回归.本文介绍简单线性回归的概念. (1)什么是简单线性回 ...
- sklearn机器学习实战-简单线性回归
记录下学习使用sklearn,将使用sklearn实现机器学习大部分内容 基于scikit-learn机器学习(第2版)这本书,和scikit-learn中文社区 简单线性回归 首先,最简单的线性回归 ...
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...
- [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...
- 机器学习——Day 3 多元线性回归
写在开头 由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客. 学习教程来源于github的Avik-Jain的100-Days-Of-MLCode 英文版:https:// ...
- 机器学习之五 正则化的线性回归-岭回归与Lasso回归
机器学习之五 正则化的线性回归-岭回归与Lasso回归 注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基 ...
- SPSS数据分析—简单线性回归
和相关分析一样,回归分析也可以描述两个变量间的关系,但二者也有所区别,相关分析可以通过相关系数大小描述变量间的紧密程度,而回归分析更进一步,不仅可以描述变量间的紧密程度,还可以定量的描述当一个变量变化 ...
- sklearn学习笔记之简单线性回归
简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...
随机推荐
- 9 Java 堆排序
堆是具有以下性质的完全二叉树,每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆:或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆.如下图: 同时,我们对堆中的结点按层进行编号,将这种逻 ...
- 发现是在IE6-IE9下,下列元素table,thead,tfoot,tbody,tr,col,colgroup,html,title,style,frameset的innerHTML属性是只读的
table ID="zhutiTable" html2="<tr></tr>": 的数据 setTableInnerHTML(docu ...
- PAT 1107 Social Clusters
When register on a social network, you are always asked to specify your hobbies in order to find som ...
- 3.3.4 lambda 表达式
lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数,例如第2章中列表对象的sort()方法以及内置函数sorted()中key参数.lambda表达式只可以包含一个表达式,不允许包 ...
- bx值
bx值 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem De ...
- hdu 4550
c: #include<stdio.h> #include<string.h> #define N 300 int f[N]; char s[N]; int main() { ...
- Grails里DOMAIN类的一对一,一对多,多对多关系总结及集成测试
终于干完这一章节,收获很多啊. 和DJANGO有类似,也有不同. User.groovy: package com.grailsinaction class User { String loginId ...
- Libevent 学习笔记 (1)——Libevent 2.0安装与简单演示样例
今天開始学习Libevent . Libevent 是开源社区的一款高性能I/O框架库. 主要特点有: 1 跨平台. 2 统一事件源 3 线程安全 4 基于Reactor 今天主要进行了Libeven ...
- Android studio图片ERROR: 9-patch image xx .9.png malformed
Android studio 图片错误 9-patch image error in Android ERROR: 9-patch image xx .9.png malformed 1) 异常: ...
- 【安卓笔记】ormlite入门
ps:写这篇文章的目的是尝试下新的markdown编辑器哈哈 简单介绍 ORMLite provides a lightweight Object Relational Mapping between ...