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: 下一代的神经网络音频编解码器,实时压缩不牺牲音质

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

[重学Python] Day8 面向对象编程:详解基于接口编程、组合优于继承、控制反转及SOLID五个原则

[重学Python] Day8 面向对象编程:详解基于接口编程、组合优于继承、控制反转及SOLID五个原则 一、面向对象编程的理念1、基于接口编程面向对象中基于接口编程主要有以下一些优点和特点 2、组合优于继承组合优于继承的优点和特点主要包括以下几点 3、控制反转通过控制…

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进阶…

Flutter路由跳转的两种方式

1.基本路由跳转:文件引入在你要跳转的页面引入 ElevatedButton(onPressed: () {Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return const NewsPage(arguments: {"title": "基本路由新闻页面传值","a…

Linux中对文件的操作(二)

文件描述符 文件描述符fd是通过open打开某一文件后返回的非负整数。在Linux系统中默认存在的文件描述符有0——标准输入&#xff0c;1——标准输出&#xff0c;2——标准错误 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include &…

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

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

Web服务器手动配置

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

leetCode79. 单词搜索

leetCode79. 单词搜索 思路&#xff1a;就是在各个位置四个方向的暴力搜索&#xff08;dfs&#xff09;&#xff0c;直到找到word一摸一样的方案为止 代码 /* 此题就是一个从每一个方向向四周暴力搜索的题目 */ class Solution { public:bool exist(vector<vector<char&…

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

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

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

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

midjourney简单使用体验

自从我下了controlNet近20G的模型以后&#xff0c;我发现我本地的sd实在跑不动了。 为了能更好的试验一下作图&#xff0c;我只能转战mj。 mj相对于我们来说还算挺友好的&#xff0c;有个梯子就行&#xff0c;虽然需要付费&#xff0c;但是。。多的我也不多说了&#xff0c;懂…

vue如何如何组合组件并通讯

在Vue中&#xff0c;组件的组合和通讯是构建复杂应用的关键部分。Vue提供了多种方式来组合组件&#xff0c;并允许组件之间进行通讯。以下是一些常见的方法&#xff1a; 1. 父子组件通讯 父组件向子组件传递数据&#xff1a; 通过props属性向子组件传递数据。 vue <!--…

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

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

Delta lake with Java--读《Delta Lake Up and Running》总结

利用5.1假期读完《Delta Lake Up and Running》&#xff0c;这本书非常适合入门&#xff0c;但不够深入&#xff0c;要想将Delta lake用于实际项目&#xff0c;还是需要从spark开始重新学习。学完一本书总结一下这本书的内容。 第一章 概念介绍&#xff0c;其中第21页的Medall…

gcc编译器分析

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

⑩ - 移动端工程师通识指南

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

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

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

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

1.STM32开发方式 STM32开发一般包括三种方式&#xff1a;基于寄存器开发、基于标准外设库开发、基于HAL库开发。 标准外设库是最基础的STM32开发方式&#xff0c;提供了一系列函数用于配置和控制STM32的外设&#xff0c;如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; //初始化…