机器学习入门笔记

文章目录

    • 背景
    • 具体步骤
      • 1.环境搭建
      • 2.写个demo
        • 1.数据处理
        • 2.分割数据集
        • 3.用模型训练数据,并得到预测结果
        • 4.绘制结果
        • 5.评估

背景

最近学习了一些关于机器学习的内容,做个笔记。

具体步骤

1.环境搭建

需要用到的工具:pycharm,anaconda
anaconda可以帮助我们创造虚拟的python环境,并在环境当中安装各种所需要的包,而且每个虚拟环境都是互相独立的,非常方便。
我们可以单独创建一个sklearn的环境,用于学习。
在这里插入图片描述
在命令行里面打开这个环境,并安装所需要的工具

pip install -U scikit-learn
pip install numpy scipy matplotlib

其中,sklearn集成了常见的一些机器学习的算法,可以让我们直接调用,https://www.scikitlearn.com.cn/。
NumPy可以做一些科学计算,https://www.numpy.org.cn/。
matplotlib是一个绘图工具,可以将我们的计算结果绘制成图形,https://matplotlib.org/。

anaconda环境搭建好了之后,可以在pycharm里面选择使用我们搭建好的python环境,
在这里插入图片描述
这样就可以开始愉快的玩耍了。

2.写个demo

这个demo是用线性回归模型预测波士顿的房价,数据库是来源于sklearn框架。机器学习编程都有一定的套路,具体分为以下几步:

1.数据处理

原始的load_boston()获取数据库方法从1.2版本已经被移除,需要使用链接获取。

其中data就是影响房价的因素,如当地的犯罪率,房屋年龄,房屋间数,和就业中心的距离等等,target就是房价。

data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]

在这里插入图片描述

2.分割数据集

我们需要将原始的数据集拆分成训练集和测试集,这里是三七分,当然拆分的比例我们可以自定义。

X = data
y = target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

3.用模型训练数据,并得到预测结果

注意这里,用训练集得到训练模型之后,用测试集的输入得到测试集的预测输出。

LR = LinearRegression()
LR.fit(X_train, y_train)
y_pred = LR.predict(X_test)  # 得到预测结果
4.绘制结果

这里我们就可以将原始数据测试集的输出和预测输出做个对比,并绘制成图形。

# x轴为真实的价格,y轴为预测价格
plt.scatter(y_test, y_pred)
plt.xlabel("Real Price")
plt.ylabel("Predicted Price")
plt.title("Real Prices vs Predicted prices")
plt.grid()
# 对比线,越接近y=x这条线,效果越好
x = np.arange(0, 50)
y = x
plt.plot(x, y, color='red', lw=4)
plt.text(30, 40, "predict line")
plt.show()

图形如下,其中红色表示y=x的图形,方便我们参考对比。
x轴是真实价格,y轴是预测价格,两个价格越接近,表示我们模型训练得越好。
在这里插入图片描述

5.评估

我们还可以用方差来进行评估,方差值越小,表明效果越好

mse = metrics.mean_squared_error(y_test, y_pred)
print(mse)

我们得到方差值为27,看来这个效果比较一般,我们需要考虑使用其他的模型来预测房价。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/233358.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5目标检测

文章目录 软硬件环境前言安装GPU环境安装pytorch的GPU版本YOLOv5测试v3.0版本参考资料 软硬件环境 ubuntu 18.04 64bitanaconda with 3.7nvidia gtx 1070Ticuda 10.1pytorch 1.5YOLOv5 前言 YOLOv4还没有退热,YOLOv5就已经来了! 6月9日&#xff0c…

【力扣】141和142环形链表

141.环形链表 法一:快慢指针 思路: 用两个指针slow,fast,后者能比前者多走一步路,那判断是不是有环,只需要判断是否会相遇。 就是有一个能比乌龟跑2倍快的兔子,两小只都在有环的路上跑,那是不是肯定会相…

流水号的获取

软件中,常常使用流水号,通常流水号是一组参数的组合,如:评估报告的编号结构: 区编号-机构类型-年份-性别-流水 如:03-01-2023-W-0001 03-01-2023-M-0002 03-01-2023-M-0003 。。。。。。 编程时&#xff0c…

提示msvcp90.dll丢失的解决方法,找不到msvcp90.dll问题全方面分析

今天我想和大家分享的主题是关于在使用软件时遇到的一个问题——msvcp90.dll丢失。相信很多老师在使用电脑时都遇到过这个问题,那么接下来我将从三个方面为大家介绍:msvcp90.dll文件是什么、msvcp90.dll丢失原因以及msvcp90.dll丢失的5个解决方案。 首先…

中科院分区和JCR分区有什么区别

文章目录 名词解释学科划分不同参考的影响因子不同期刊分区不同期刊分区阈值不同 名词解释 中科院分区:又称“中科院JCR分区”,是中国科学院文献情报中心世界科学前沿分析中心的科学研究成果,期刊分区表数据每年底(每年12月中下旬…

windows错误事件 98、41、7000、55、153解决办法

事件错误:98、55、153 疑难解答清单 在系统事件日志中,搜索新技术文件系统 (NTFS) 和磁盘相关的警告和错误。 例如,事件 ID 55、153 或 98。 管理员身份打开CMD,运行命令 chkdsk /scan 并检查结果。 该 chkdsk /scan 命令是只读…

[渗透测试学习] Devvortex - HackTheBox

文章目录 信息搜集解题步骤提交flag 信息搜集 扫描端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.242发现80端口有http服务,并且是nginx服务 尝试访问web界面,发现跳转到http://devvortex.htb/无法访问 我们用vim添加该域名即可 sudo vim /etc/…

课后作业7.3.1:构造一个自己的小操作系统

构造一个自己的 mini 操作系统 任务描述 请实现如下功能: 1.写一个命令解释器程序 mysh.c ,其功能是接收用户输入的命令并给出反馈。要求该程序既支持内部命令 cd、sync、exit ;也支持外部命令,即可以接收 cat、ls 等命令,然后执行相应的可执行程序。要求首先在 Ubuntu 中…

电源小白入门学习1——电源系统架构和相关指标

电源小白入门学习1——电源系统架构和相关指标 电源系统架构电源系统的指标及测量方法电源的效率电源的静态电流输出电压调整率纹波测量的注意事项动态负载测试 在开始本期内容之气,我先简单介绍一下我们电源小白学习系列内容:首先我是一个嵌入式小白&am…

FF-A架构精讲-目录

第二章 Introduction第三章 Software architecture第四章 Concepts第五章 Setup第六章 Identification and Discovery第七章 Message passin第八章 Partition runtime models第九章 Interrupt management第十章 Notifications第十一章 Memory Management第十二章 Interface ove…

Mybatis、Mybatis整合Spring的流程图

Mybatis 注意MapperProxy里面有invoke方法,当进到invoker方法会拿到 二、mybatis整合Spring 1、当我们的拿到的【Dao】其实就是【MapperProxy】,执行Dao的方法时,会被MapperProxy的【Invoke方法拦截】 2、图上已经标注了MapperProxy包含哪些…

java的多态

文章目录 多态的概念继承语法子类中访问父类的成员变量子类中访问父类的成员方法如果子类中存在与父类中相同的成员时,那如何在子类中访问父类相同名称的成员呢?子类构造方法 final 关键字重写向上转移和向下转型向上转型向下转型 多态 多态的概念 就是…

WorkPlus即时通讯,让沟通零障碍!企业协作更高效

如今,随着信息技术的快速发展,企业对于高效沟通和即时协作的需求也日益增长。在这个数字化时代,WorkPlus作为一款领先的企业级移动办公平台,以其强大的即时通讯功能和卓越的用户体验,成功为企业打造了高效沟通的新时代…

Linux-帮助命令的使用和练习(type、man、help、info详解)

目录 5.3.1 type-判断是否为内部命令 5.3.2 man-查看详细文档 5.3.3 help-查看shell内部命令的帮助信息 5.3.4 --help-查看系统外部命令帮助信息 5.3.5 info-查看info格式的帮助指令 5.3.6 /usr/share/doc-存储软件包的文档信息 平时我们看到的命令大多数都可以查看帮助文…

基于PLC的污水处理控制系统的设计(论文+源码)

1.系统设计 污水由进水系统通过粗格栅和清污机进行初步排除大块杂质物体以及漂浮物等,到达除砂池中。在除砂池系统中细格栅进一步净化污水中的细小颗粒物体,将污水中的细小沙粒滤除后进入氧化沟反应池。在该氧化沟系统中进行生化处理,分解污…

class006 二分搜索【算法】

class006 二分搜索【算法】 算法讲解006【入门】二分搜索 code1 有序数组中是否存在一个数字 // 有序数组中是否存在一个数字 package class006;import java.util.Arrays;// 有序数组中是否存在一个数字 public class Code01_FindNumber {// 为了验证public static void mai…

Java8流式编程详解

简介 java8提供的流式编程使得我们对于集合的处理不再是临时集合加上各种还能for循环,取而代之的是更加简洁高效的流水线操作,所以笔者就以这篇文章总结一下流式编程中常见的操作。 前置铺垫 后文示例操作中,我们都会基于这个菜肴类的集合…

使用C语言操作kafka ---- librdkafka

1 安装librdkafka git clone https://github.com/edenhill/librdkafka.git cd librdkafka git checkout v1.7.0 ./configure make sudo make install sudo ldconfig 在librdkafka的examples目录下会有示例程序。比如consumer的启动需要下列参数 ./consumer <broker> &…

前言-计算机概述

1 计算机作用&#xff1f; 计算机已经成为人们日常生活中不可缺少的产物&#xff0c;具体作用如下 1&#xff09;信息处理 电脑可以处理、存储和检索大量的信息&#xff0c;例如文档、音频、视频等等&#xff0c;这使得信息传播和共享变得更加容易和高效。 2&#xff09;通讯 …

人口减少引发全面社会变革:从幼儿园到经济结构都在发生深刻变化

湖南省教育厅发布文件&#xff0c;首次正式提出“有序组织幼儿园设并转撤”&#xff0c;在我国整体人口下降的大背景下&#xff0c;引发了社会对于幼儿园存废问题的深刻思考。随着出生率的下降&#xff0c;人们虽然对于幼儿园规模的减少有所预期&#xff0c;但供需形势的逆转却…