Scikit是什么?

news2024/12/23 3:21:52

目录

一、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()

三、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.coloradmin.cn/o/1642867.html

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

相关文章

ubuntu20配置深度学习环境

目录 系统环境安装anaconda文件的安装anaconda环境配置anaconda换中科大源常用的anaconda命令 安装显卡驱动安装CUDA下载cudnn安装pytorch更换conda源选择对应的pytorch版本进行安装 系统环境 ubuntu20,安装了ros noetic。 参考博客主要有: https://g…

【Spring】JdbcTemplate

JdbcTemplate 是 Spring 提供的一个 JDBC 模板类,是对 JDBC 的封装,简化 JDBC 代码 也可以让 Spring 集成其它的 ORM 框架,例如:MyBatis、Hibernate 等 使用 JdbcTemplate 完成增删改查 一、环境准备 数据库: 准备…

C++相关概念和易错语法(11)(npos、string的基本使用)

本文主要是分享一些基础的用法和接口,不会涉及迭代器版本,也没有底层概念,主要是保证简单入门和使用。 1.npos string本质上是一个类,里面包含了上百个成员函数,在调用这个头文件后,我们要知道整个类都被…

OpenCV 为轮廓创建边界框和圆(62)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV检测凸包(61) 下一篇 :OpenCV如何为等值线创建边界旋转框和椭圆(62) ​ 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::boundingRect使用 OpenCV 函数 cv::mi…

foobar2000 for Mac:卓越音乐播放器

当您在寻找一款音质卓越、功能丰富的音频播放器时,foobar2000 for Mac无疑是您的首选。它拥有简洁明了的界面设计,易于上手,同时支持多种音频格式,让您无需担心兼容性问题。 foobar2000 for Mac v2.6.4免激活版下载 foobar2000 fo…

P6周人脸识别

一、前期准备 1.设置GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasets import os,PIL,pathlib,warningswarnings.filterwarnings("ignore") #忽…

SQL:NOT IN与NOT EXISTS不等价

在对SQL语句进行性能优化时,经常用到一个技巧是将IN改写成EXISTS,这是等价改写,并没有什么问题。问题在于,将NOT IN改写成NOT EXISTS时,结果未必一样。 目录 一、举例验证二、三值逻辑简述三、附录:用到的S…

SpringBoot自定义定时任务

通常,在我们的项目中需要定时给前台发送一些提示性消息或者我们想要的定时信息,这个时候就需要使用定时任务来实现这一功能,实现也很简单,接下来具体来看看吧~ 简单定时任务 首先,你需要在你的启动类上加上开启定时任…

【人工智能Ⅱ】实验5:自然语言处理实践(情感分类)

实验5:自然语言处理实践(情感分类) 一:实验目的与要求 1:掌握RNN、LSTM、GRU的原理。 2:学习用RNN、LSTM、GRU网络建立训练模型,并对模型进行评估。 3:学习用RNN、LSTM、GRU网络做…

Photoshop中图像编辑的基本操作

Photoshop中图像编辑的基本操作 Photoshop中调整图像窗口大小Photoshop中辅助工具的使用网格的使用标尺的使用注释工具的使用 Photoshop中置入嵌入式对象Photoshop中图像与画布的调整画布大小的修改画布的旋转图像尺寸的修改 Photoshop中撤销与还原采用快捷键进行撤销与还原采用…

基于MQTT通信开发的失物招领小程序

项目架构设计 这个项目采用前后端分离的方式,重新设计了两条链路来支撑程序的信息获取和传递 前端的小程序页面再启动页面渲染时,直接通过DBAPI从后端数据库获取信息,直接渲染在小程序中项目中给DBAPI的定位是快速从后端获取信息&#xff0…

信息系统项目管理师0087:组织系统(6项目管理概论—6.2项目基本要素—6.2.6组织系统)

点击查看专栏目录 文章目录 6.2.6组织系统1.治理框架2.管理要素3.组织结构类型6.2.6组织系统 项目运行时会受到项目所在的组织结构和治理框架的影响与制约。为有效且高效地开展项目,项目经理需要了解组织内的组织机构及职责分配情况,帮助自己有效地利用其权力、影响力、能力、…

5分钟速通大语言模型(LLM)的发展与基础知识

✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…

【编程题-错题集】chika 和蜜柑(排序 / topK)

牛客对于题目链接&#xff1a;chika和蜜柑 (nowcoder.com) 一、分析题目 排序 &#xff1a;将每个橘⼦按照甜度由高到低排序&#xff0c;相同甜度的橘子按照酸度由低到高排序&#xff0c; 然后提取排序后的前 k 个橘子就好了。 二、代码 1、看题解之前AC的代码 #include <…

ttkbootstrap界面美化系列之PanedWindow(七)

在界面设计中经常用PanedWindow控件来对整个界面进行切割布局&#xff0c;让整个界面看上去有层次感&#xff0c;不至于说杂乱无章。在我之前的文章中有对tkinter的该控件做了详细的介绍&#xff0c;链接如下基于Tkinter的PanedWindow组件进行窗口布局-CSDN博客 本文主要是介绍…

Python-VBA函数之旅-oct函数

目录 一、oct函数的常见应用场景 二、oct函数使用注意事项 三、如何用好oct函数&#xff1f; 1、oct函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博客 一、oct函数的常见应用场景 oc…

批量抓取某电影网站的下载链接

思路&#xff1a; 进入电影天堂首页&#xff0c;提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面&#xff0c;提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

Linux理解文件操作 文件描述符fd 理解重定向 dup2 缓冲区 C语言实现自己的shell

文章目录 前言一、文件相关概念与操作1.1 open()1.2 close()1.3 write()1.4 read()1.4 写入的时候先清空文件内容再写入1.5 追加&#xff08;a && a&#xff09; 二、文件描述符2.1 文件描述符 fd 0 1 2 的理解2.2 FILE结构体&#xff1a;的源代码 三、深入理解文件描述…

Vue 开发中的一些问题简单记录,Cannot find module ‘webpack/lib/RuleSet‘

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

【C语言】项目实践-贪吃蛇小游戏(Windows环境的控制台下)

一.游戏要实现基本的功能&#xff1a; • 贪吃蛇地图绘制 • 蛇吃食物的功能 &#xff08;上、下、左、右方向键控制蛇的动作&#xff09; • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 二.技术要点 C语言函数、枚举、结构体、动态内存管…