Scikit是什么?

目录

一、Scikit是什么?

二、用Scikit做一个简单房价预测例子

三、sklearn知识点


一、Scikit是什么?

 Scikit就是scikit-learn,是一个免费软件机器学习库。

https://scikit-learn.org/stable/icon-default.png?t=N7T8https://scikit-learn.org/stable/

  • 用于预测数据分析的简单高效的工具
  • 每个人都可以访问,并可在各种环境中重复使用
  • 基于NumPy、SciPy和matplotlib构建
  • 开放源代码,商业可用-BSD许可证

二、用Scikit做一个简单房价预测例子

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
import matplotlib# 设置默认字体为中文字体,如黑体
matplotlib.rcParams['font.family'] = 'SimHei'# 假设的数据集
data = {'面积': [80, 100, 120, 140, 160],'卧室数量': [2, 3, 3, 4, 4],'楼层': [5, 10, 15, 20, 25],'房价(万元)': [50, 60, 70, 80, 90]
}df = pd.DataFrame(data)# 划分数据集
X = df[['面积', '卧室数量', '楼层']]
y = df['房价(万元)']X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)# 预测测试集
y_pred = model.predict(X_test)# 评估模型
mse = mean_squared_error(y_test, y_pred)# 打印均方误差
print(f"Mean Squared Error: {mse}")# 绘制训练数据散点图
plt.scatter(X_train['面积'], y_train, color='blue', label='Training Data')# 绘制测试数据散点图
plt.scatter(X_test['面积'], y_test, color='red', label='Test Data')# 绘制预测线
plt.plot(X_test['面积'], y_pred, color='green', label='Predictions', linewidth=5)# 添加图例和标题
plt.legend()
plt.title('XX城市房价预测模型')
plt.xlabel('面积')
plt.ylabel('房价(万元)')# 预测新数据
new_data = [[150, 4, 22]]
predicted_price = model.predict(new_data)
print(f"预测新数据(面积150平米,4个卧室,22楼)的房价: {predicted_price[0]}")
plt.scatter(new_data[0][0], predicted_price[0], color='yellow', label='预测数据')new_data = [[120, 3, 22]]
predicted_price = model.predict(new_data)
print(f"预测新数据(面积120平米,3个卧室,22楼)的房价: {predicted_price[0]}")
plt.scatter(new_data[0][0], predicted_price[0], color='yellow', label='预测数据')new_data = [[80, 3, 22]]
predicted_price = model.predict(new_data)
print(f"预测新数据(面积80平米,2个卧室,22楼)的房价: {predicted_price[0]}")
plt.scatter(new_data[0][0], predicted_price[0], color='yellow', label='预测数据')# 显示图表
plt.show()

Mean Squared Error: 5.048709793414476e-29
预测新数据(面积150平米,4个卧室,22楼)的房价: 84.94117647058823
预测新数据(面积120平米,3个卧室,22楼)的房价: 70.8235294117647
预测新数据(面积80平米,2个卧室,22楼)的房价: 52.00000000000001 

三、sklearn知识点

sklearn包含了各种分类、回归、聚类算法,并且接口统一,使用方便,是机器学习领域非常受欢迎的库之一。主要功能:

  1. 分类(Classification)sklearn提供了多种分类算法,如逻辑回归(Logistic Regression)、支持向量机(Support Vector Machines, SVM)、决策树(Decision Trees)、随机森林(Random Forests)、梯度提升(Gradient Boosting)等,用于解决分类问题。

  2. 回归(Regression):对于预测连续值的问题,sklearn提供了线性回归(Linear Regression)、岭回归(Ridge Regression)、套索回归(Lasso Regression)等回归算法。

  3. 聚类(Clustering)sklearn包含K-均值(K-Means)、层次聚类(Hierarchical Clustering)、DBSCAN等聚类算法,用于发现数据中的结构或组。

  4. 降维(Dimensionality Reduction):通过主成分分析(Principal Component Analysis, PCA)、t-SNE(t-Distributed Stochastic Neighbor Embedding)等方法,sklearn可以帮助减少数据集的维度,以便于可视化或提高算法效率。

  5. 模型选择和评估(Model Selection and Evaluation)sklearn提供了交叉验证(Cross-validation)、网格搜索(Grid Search)等工具,用于评估和调整模型性能,选择最佳参数。

  6. 预处理(Preprocessing):包括数据标准化(Standardization)、归一化(Normalization)、编码(Encoding,如独热编码One-Hot Encoding)等,以便机器学习算法能够更有效地工作。

  7. 特征提取(Feature Extraction)sklearn可以从原始数据中提取有用的特征,例如文本数据的词袋模型(Bag of Words)、TF-IDF(Term Frequency-Inverse Document Frequency)等。

  8. 数据可视化(Data Visualization):虽然scikit-learn本身不是专门的数据可视化库,但它与matplotlibseaborn等可视化库可以很好地配合,用于展示数据和模型结果。

总的来说,scikit-learn是一个非常全面且强大的机器学习库,适用于各种规模和复杂度的数据科学项目。

数据分析,智慧之源。用数据说话,让我们一起洞悉规律,发现机遇。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SoundStream: 下一代的神经网络音频编解码器,实时压缩不牺牲音质

音频编解码技术的目标是,通过减少音频文件的大小来节省存储空间或减轻网络传输的负担。理想的情况下,即使音频被压缩,我们听到的声音与原版也应该没有任何区别。 过去,已经有不少编解码技术被开发出来,满足了这些需求…

Day13-JavaWeb开发-事务管理(回顾/进阶)AOP基础(入门/概念)AOP进阶(通知类型/顺序/切点表达式)AOP案例

1. 事务管理 1.1 事务管理-事务回顾 1.2 事务管理-事务进阶 rollbackFor propagetion 2. AOP基础 2.1 AOP基础-快速入门 2.2 AOP基础-核心概念 3. AOP进阶 3.1 AOP进阶-通知类型 3.2 AOP进阶-通知顺序 3.3 切入点表达式-execution 3.4 切入点表达式-annottation 3.5 AOP进阶…

如何构建用于从收据中提取信息的生成式人工智能工具

原文地址:how-to-build-a-generative-ai-tool-for-information-extraction-from-receipts 使用 LangChain 和 OpenAI 工具从 Google Drive 中存储的收据图像中提取结构化信息 2024 年 4 月 10 日 纸质收据有各种样式和格式,是自动信息提取的一个有趣目…

Web服务器手动配置

目录 配置环境 http配置 配置步骤 1、首先安装Nginx(已经安装的跳过这步) 2、查看一下下Nginx的配置文件结构,了解如何配置,以及配置的各个条目有什么作用(为接下来的配置打基础) 3、创建你的网页 4、…

【JAVA项目】基于ssm的协同过滤算法的【图书推荐系统】

技术简介:采用B/S架构、ssm 框架、Java技术、MySQL等技术实现。 系统简介:系统权限按管理员和用户这两类涉及用户划分。(1)管理员功能需求 管理员登陆后,主要包括首页、个人中心、用户管理、书籍管理、书籍分类管理、热…

牛客NC382 切割木头【中等 二分超找 Java/Go/C++】

题目 题目链接: https://www.nowcoder.com/practice/707d98cee255448c838c76918a702be0 核心 二分查找Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可…

安卓 app icon大小 安卓app界面尺寸大小

移动应用的界面设计画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现? 本篇将结合iOS和android官方的设计规范、搜集的资料以及工作中的摸索,来分享移动应用界面设计中的…

gcc编译器分析

gcc编译器分析 参考词法分析语法分析预读一个符号语法分析函数调用关系重点函数分析c_parse_filec_parser_translation_unit 参考 《gcc源码分析》 词法分析 词法分析的过程就是将源代码识别成一个一个的词法符号,并在词法分析的过程中创建一些树节点&#xff0c…

tomcat+nginx 动静分离

一、单机反向代理 7-1 7-2 测试 二、多机反向代理 1. 环境准备 机器IP地址服务7-1172.168.1.11nginx7-2172.168.1.12tomcat7-3172.168.1.13tomcat 2. 配置7-1 Nginx 服务器 vim /apps/nginx/conf/nginx.confhttp:upstream tomcat {server 172.168.1.12:8080;server …

探索设计模式的魅力:分布式模式让业务更高效、更安全、更稳定

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索分布式模式之旅✨ 在数字化时代,企业面临着前所未有的挑战和机遇。…

STM32开发笔记-新建标准库工程

1.STM32开发方式 STM32开发一般包括三种方式:基于寄存器开发、基于标准外设库开发、基于HAL库开发。 标准外设库是最基础的STM32开发方式,提供了一系列函数用于配置和控制STM32的外设,如GPIO、USART、SPI等。使用标准外设库需要手动编写代码…

(39)4.29数据结构(栈,队列和数组)栈

#include<stdlib.h> #include<stdio.h> #define MaxSize 10 #define Elemtype int 1.栈的基本概念 2.栈的基本操作 typedef struct { Elemtype data[MaxSize]; int top; }Sqstack;//初始化栈 void InitStack(Sqstack& S) { S.top -1; //初始化…

Golang日志管理:使用log/slog实现高级功能和性能优化

Golang日志管理&#xff1a;使用log/slog实现高级功能和性能优化 简介基础使用初始化和配置日志级别 高级技巧自定义日志格式器条件日志处理 实战案例场景一&#xff1a;API请求日志记录场景二&#xff1a;错误跟踪和用户通知 性能优化优化日志记录的性能异步日志处理选择合适的…

Vue的项目启动指令分析

通过Vue CLI脚手架创建的项目&#xff0c;默认的启动项目方式是 npm run serve 这里的serve是可以修改的。 在创建的项目目录中&#xff0c;找到package.json 双击打开&#xff0c;找到scripts部分 在scripts部分&#xff0c;有一个"serve"键值对&#xff0c;这里的…

机器学习-K近邻算法(KNN)

目录 什么是KNN算法 图解KNN基本算法 &#xff08;1&#xff09;k近邻算法中k的选取 &#xff08;2&#xff09;距离函数 &#xff08;3&#xff09;归一化处理 &#xff08;4&#xff09;概率kNN KNN算法的优缺点 优势 缺点 KNN算法总结 什么是KNN算法 k近邻算法&…

[Spring Cloud] (6)gateway整体加解密

文章目录 简述整体效果后端增加配置nacos增加配置GlobalConfig 添加请求整体解密拦截器DecryptionFilter添加响应整体解密拦截器EncryptionFilter 前端请求拦截器添加整体加密逻辑请求头中添加sessionId 响应拦截器添加整体解密逻辑 简述 本文网关gateway&#xff0c;微服务&a…

[C语言]指针进阶详解

指针是C语言的精髓所以内容可能会比较多&#xff0c;需要我们认真学习 目录 1、字符指针 2、指针数组 3、数组指针 3.1数组指针的定义 3.2&数组名vs数组名 3.3数组指针的使用 4、数组传参和指针传参 4.1一维数组传参 4.2二维数组传参 4.3一级指针传参 4.4二级指…

学习如何使用PyQt5实现notebook功能

百度搜索“pyqt5中notebook控件”&#xff0c;AI自动生成相应例子的代码。在 PyQt5 中&#xff0c;QTabWidget 类被用作 Notebook 控件。以下是一个简单的示例&#xff0c;展示如何创建一个带有两个标签的 Notebook 控件&#xff0c;并在每个标签中放置一些文本。 import sys f…

45. UE5 RPG 增加角色受击反馈

在前面的文章中&#xff0c;我们实现了对敌人的属性的初始化&#xff0c;现在敌人也拥有的自己的属性值&#xff0c;技能击中敌人后&#xff0c;也能够实现血量的减少。 现在还需要的就是在技能击中敌人后&#xff0c;需要敌人进行一些击中反馈&#xff0c;比如敌人被技能击中后…

使用macof发起MAC地址泛洪攻击

使用macof发起MAC地址泛洪攻击 MAC地址泛洪攻击原理&#xff1a; MAC地址泛洪攻击是一种针对交换机的攻击方式&#xff0c;目的是监听同一局域网中用户的通信数据。交换机的工作核心&#xff1a;端口- MAC地址映射表。这张表记录了交换机每个端口和与之相连的主机MAC地址之间…