当前位置: 首页 > news >正文

【机器学习工具库-一-传统机器学习sklearn库】

sklearn库

  • 安装
    • 安装顺序
  • sklearn库的六大功能
  • sklearn中的核心调用流程

sklearn库是用于机器学习一个工具包,有了它,可以帮我们用简单的函数实现传统机器学习中的分类、聚类等任务。

安装

sklearn的官网 http://scikit-learn.org/stable/
sklearn库基于Numpy、Scipy、matplotlib开发,因此需要先安装这些依赖。

安装顺序

Numpy是一个开源的python科学计算库,scipy是基于numpy集成的各种函数库,matplotlib是一个绘图工具,可以按照Numpy Scipy库 matplotlib、sklearn库的顺序安装。
注意sklearn的安装是 pip install scikit-learn

sklearn库的六大功能

正如sklearn自己官网中写的,它的六大功能是:分类、回归、聚类、降维、模型选择、预处理
在这里插入图片描述

列举了几种sklearn中的数据集(这个是较早版本的,仅举例示意),分别可以用于上述几个功能。

序号数据集适用算法加载方法
1波斯顿房价回归laod_boston
2鸢尾花分类load_iris()
3糖尿病回归laod_diabetes()
4手写数字分类load_digits()
5olivetti脸部数据降维fetch_olivertti_faces
6新闻分类分类fetch_20newsgroup
7带标签的人脸数据分类、降维fetch_tfw_people()
8路透社新闻分类fetch_rev1()

这些数据集不需要记住,从网站user Guid找到dataset,就可以找到全部的了,且这块随着版本的提升,也一直在做迭代更新:
在这里插入图片描述

当然这六大功能实际上内容是互相交叉的,比如很多模型既能做回归又能做分类,所以模型的选择也决定了它能作什么样子的功能。

sklearn中的核心调用流程

sklearn中的核心调用流程一般是:从数据集获取数据-》切分数据集(为了训练和测试分开用)-》模型选择和训练-》预测-》计算损失-》可视化,下面是一个简单的例子,后续会详细讲解。下面的例子没有获取和切分数据集,后续也会介绍这部分,这地方仅随机构造一个数据集,测试下核心功能

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_errornp.random.seed(20)def arraygenreg():x = np.linspace(-10, 10, 100)y = 2*x + np.random.normal(0, 0.1, 100)return x, yfeatures, labels = arraygenreg()
features = features.reshape(-1, 1)
print(labels.shape)
#训练模型
model = LinearRegression()
model.fit(features, labels)
#自变量
print(model.coef_)
#截距
print(model.intercept_)#预测
x = np.array([20, 30, 40]).reshape(-1, 1)
y = model.predict(x)
print('labels:{}, target:{}, loss:{}', x, y, mean_squared_error(x, y))#可视化
plt.scatter(features, labels)
plt.scatter(x, y)
plt.show()

http://www.mrgr.cn/news/10865.html

相关文章:

  • redis--主从复制,哨兵模式,Redis Cluster模式
  • MySQL 中的 distinct 和 group by 哪个效率更高
  • Android - lock/unlock bootloader
  • pikachu靶场XSS通关攻略
  • accelerate相关笔记
  • 基于Material Design风格开源的Avalonia UI控件库
  • ERROR: failed to create cluster: failed to list nodes
  • NVIDIA Jetson AGX Orin源码编译安装CV-CUDA
  • 关于Linux sudo授权的那点事
  • 《C++魔法:运算符重载的奇妙之旅》
  • Autosar(Davinci) --- ADT和IDT如何Mapping
  • Andrid异步更新UI:Handler(二)深入了解:Message你真的会创建?它是如何子线程和主线程通知?
  • [Mdfs] lc690. 员工的重要性(dfs+bfs+离线询问+问题拓展+基础题)
  • 支持pyro 1.8以上的贝叶斯神经网络实现 bnn Bayesian Neural Network pyro ,人工智能
  • ptrade排坑日记——一键脚本报错,启动jupyterhub失败。
  • 【PL/pgSQL】华为数据库GaussDB及PostgreSQL 数据库系统的过程语言
  • Flutter 高德地图坐标和百度坐标相互转换
  • C语言指针原理--单片机C语言编程开发中指针变量的本质/用法/注意事项
  • Prompt + 工作流组件 = AI智能体:开启智能化新时代
  • C#入门(14)Switch语句