写在开头

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

学习教程来源于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 简单线性回归的更多相关文章

  1. 机器学习与Tensorflow(1)——机器学习基本概念、tensorflow实现简单线性回归

    一.机器学习基本概念 1.训练集和测试集 训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集 测试集(test ...

  2. 机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE

    前文再续书接上一回,机器学习的主要目的,是根据特征进行预测.预测到的信息,叫标签. 从特征映射出标签的诸多算法中,有一个简单的算法,叫简单线性回归.本文介绍简单线性回归的概念. (1)什么是简单线性回 ...

  3. sklearn机器学习实战-简单线性回归

    记录下学习使用sklearn,将使用sklearn实现机器学习大部分内容 基于scikit-learn机器学习(第2版)这本书,和scikit-learn中文社区 简单线性回归 首先,最简单的线性回归 ...

  4. 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...

  5. [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...

  6. 机器学习——Day 3 多元线性回归

    写在开头 由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客. 学习教程来源于github的Avik-Jain的100-Days-Of-MLCode 英文版:https:// ...

  7. 机器学习之五 正则化的线性回归-岭回归与Lasso回归

    机器学习之五 正则化的线性回归-岭回归与Lasso回归 注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基 ...

  8. SPSS数据分析—简单线性回归

    和相关分析一样,回归分析也可以描述两个变量间的关系,但二者也有所区别,相关分析可以通过相关系数大小描述变量间的紧密程度,而回归分析更进一步,不仅可以描述变量间的紧密程度,还可以定量的描述当一个变量变化 ...

  9. sklearn学习笔记之简单线性回归

    简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...

随机推荐

  1. 9 Java 堆排序

    堆是具有以下性质的完全二叉树,每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆:或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆.如下图: 同时,我们对堆中的结点按层进行编号,将这种逻 ...

  2. 发现是在IE6-IE9下,下列元素table,thead,tfoot,tbody,tr,col,colgroup,html,title,style,frameset的innerHTML属性是只读的

     table ID="zhutiTable" html2="<tr></tr>": 的数据 setTableInnerHTML(docu ...

  3. PAT 1107 Social Clusters

    When register on a social network, you are always asked to specify your hobbies in order to find som ...

  4. 3.3.4 lambda 表达式

    lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数,例如第2章中列表对象的sort()方法以及内置函数sorted()中key参数.lambda表达式只可以包含一个表达式,不允许包 ...

  5. bx值

    bx值 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem De ...

  6. hdu 4550

    c: #include<stdio.h> #include<string.h> #define N  300 int f[N]; char s[N]; int main() { ...

  7. Grails里DOMAIN类的一对一,一对多,多对多关系总结及集成测试

    终于干完这一章节,收获很多啊. 和DJANGO有类似,也有不同. User.groovy: package com.grailsinaction class User { String loginId ...

  8. Libevent 学习笔记 (1)——Libevent 2.0安装与简单演示样例

    今天開始学习Libevent . Libevent 是开源社区的一款高性能I/O框架库. 主要特点有: 1 跨平台. 2 统一事件源 3 线程安全 4 基于Reactor 今天主要进行了Libeven ...

  9. 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) 异常: ...

  10. 【安卓笔记】ormlite入门

    ps:写这篇文章的目的是尝试下新的markdown编辑器哈哈 简单介绍 ORMLite provides a lightweight Object Relational Mapping between ...