python实现sklearn的基本操作流程,sklearn预处理方法,sklearn基础算法的使用,以及sklearn模型的选择方法。

python:机器学习数据预处理结果对比及常用四种预处理方法对比介绍,为您的人工模型算法加油助力 数据预处理是机器学习的关键步骤,能显著提升模型性能。本文通过程序对比了预处理前后的效果。详解四种常用预处理方法:StandardScaler标准化(消除量纲)、MinMaxScaler归一化(压缩范围)、RobustScaler抗异常值、Normalizer向量归一化,并通过可视化对比其处理效果。 阅读详情

一、数据的获取与分析

1.读取数据

本文使用pandas的read_csv方法读取数据,常用的的方法还有,如pandas.read_sql_query(),pandas.read_excel()等。

import pandas as pd
#读取数据
data = pandas.read_csv('dest.csv')

2.分析数据

在进行数据分析之前,首先要了解要分析的数据,以下操作为帮助自己更好的了解自己的数据及其结构。

#查看数据的数据维度
data.shape
#查看数据是否有空值。索引为字段,值为bool值,True有空值,False无空值。
data.isnull().any()
#查看数据的数据类型
data.info()
#查看数据的取值区间。
print(data)

二、数据的预处理

如果目标字段为数字型

机器能够直接识别数字信息,故可以直接进行处理。

StandardScaler()

去均值和方差归一化。使数据转换为均值为0,方差为1的列。

from sklearn.preprocessing import StandardScaler
std = StandardScaler()
#可以对多个字段同时进行标准化处理
cols = ['字段1','字段2']
data[cols] = std.fit_transform(data[cols])

MinMaxScaler()

最小最大值标准化,将属性缩放到一个指定的最大和最小值(通常是1-0)之间。通常指定feature_range。

from sklearn.preprocessing import MinMaxScaler
#将其标准化为最小值为2,最大值为5
mms = .MinMaxScaler(feature_range=(2,5))
#可以对多个字段同时进行标准化处理
cols = ['字段1','字段2']
data[cols] = mm.fit_transform(data[cols])

VarianceThreshold()

数据特征值选择。筛选出特征值大于某个值的字段。

from sklearn.feature_selection import VarianceThreshold
#threshold阈值,选取特征值大于阈值的字段。
var = VarianceThreshold(threshold=10.0)
#可以对多个字段同时进行标准化处理
cols = ['字段1','字段2']
data[cols] = var.fit_transform(data[cols])

如果目标字段为文本字段

如果为中文文本字段。要先使用jieba分词,对文本数据进行分词。然后将文本信息用空格隔开。进行预处理,这里就不过多介绍jieba分词。大家可以去详细看看jieba分词。

TfidfVectorizer()

根据TF(词频)和IDF(逆向词频)进行分类。通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer()
cols = ['字段1','字段2']
data_new = tf.fit_transform(data[cols])
#转化为矩阵形式
print(data_new.toarray())
#查看关键词
print(data_new.get_feature_names())

CountVectorizer()

会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer()
cols = ['字段1','字段2']
data_new = cv.fit_transform(data[cols])
#转化为矩阵形式
print(data_new.toarray())
#查看关键词
print(data_new.get_feature_names())

如果目标数据为字典(dict)

DictVectorizer()

对使用字典存储的数据进行特征抽取和向量化。它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

from sklearn.feature_extraction import DictVectorizer
#sparse=False表示不转化为稀疏矩阵。
dict = DictVectorizer(sparse=False)
cols = ['字段1','字段2']
data_new = dict.fit_transform(data[lols])
#转化为矩阵形式
print(data_new.toarray())
#查看关键词
print(data_new.get_feature_names())

三、将数据分为训练集和测试集

如果待测样本中的正负样本值相差不大,则使用train_test_split()将数据分为训练集和测试集

from sklearn.model_selection import train_test_split
#X为所有的X值,y为X值所对应的结果值。test_size=0.25表示测试集占25%,random_state 表示随机取出数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)

如果待测样本中正负样本值相差很大,则需要使用SMOTE过采样。需要安装imblearn库。

pip install imblearn
from sklearn.model_selection import train_test_split
#将数据分为测试集和训练集但正负样本值相差过大。
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.25)

#过采样
from imblearn.over_sampling import SMOTE
# 训练时,要保证样本均衡,将X_train和y_train样本过采样。测试时候,样本不均衡,没问题的
smote = SMOTE()
X_train_new,y_train_new = smote.fit_sample(X_train,y_train)

四、基本模型介绍

一:线性回归模型 LinearRegression()

from sklearn.linear_model import LinearRegression
from sklearn.externals import joblib
from sklearn.metrics import r2_score
lr = LinearRegression()
#训练模型
lr.fit(X_train_new,y_train_new)
#保存训练模型
joblib.dump(lr,'./iris.pkl')
#进行预测
y_predict = lr.predict(X_test)
#如果预测数据进行过预处理,还要再转换回原始数据,例如进行过标准化。
y_predict_true = std_y.inverse_transform(y_predict)
#对模型进行评分。
score = r2_score(y_test,y_predict_true)

二、朴素贝叶斯分类器 MultinomialNB

从已知

from sklearn.naive_bayes import MultinomialNB
mul = MultinomialNB()
#训练模型
mul.fit(X_train_new,y_train_new)
#进行预测
y_predict = mul.predict(X_test)

三、K最近邻分类器(Knn算法) KNeighborsClassifier

kmeans算法的过程:(假如有两类)
1.随机选择两个点作为聚类的中心
2.计算所有点距离两个中心的距离,选择距离较近的点作为类别(例如:距离蓝色点近,类别就是蓝色)
3.计算已经分好类的各组数据的平均值,使用各组数据的平均值作为新的中心。
4.以新的中心为依据,跳转到第二步。
5.直到收敛(两次迭代的数值没有明显变化:新中心点的距离减去上次中心点的距离小于某个阈值)。

from sklearn.neighbors import KNeighborsClassifier
#n_neighbors=3表示找出三个最近的 判断这三个中属于哪个类别的多。
knn = KNeighborsClassifier(n_neighbors=3)
#训练模型
knn.fit(X_train_new,y_train_new)
#进行预测
knn.predict(x_test)

四、决策树 DecisionTreeClassifier

决策树是一种无监督的学习方法,用于分类和回归。它对数据中蕴含的决策规则建模,以预测目标变量的值。主要是利用信息熵增益的不同。

from sklearn.tree import DecisionTreeClassifier
d_tree = DecisionTreeClassifier()
#训练模型
d_tree.fit(X_train_new,y_train_new)
#预测数据
d_tree.predict(x_test)

五、总结

sklearn算法使用方法,都是使用fit函数训练模型,然后再使用predict函数进行预测。下面贴一张sklearn如何选择算法的图。
在这里插入图片描述

WPS用户看过来:避开格式错乱坑,用WPS Office完美制作红头文件(2024最新版) 本文详细解析了WPS Office与Word在红头文件制作中的核心差异,提供了2024年最新版的零误差实战指南。从字体处理、页面布局到红头制作关键步骤,帮助用户避开格式错乱坑,确保跨设备显示一致。特别针对WPS用户优化,解决字体丢失、版式错位等常见问题。 阅读详情

相关推荐

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 325

机器学习:Sklearn算法选择路径图

Sklearn算法选择路径图 英文版 中文版

彭世瑜的博客 3867

MindIE与vLLM-Ascend性能对决:Qwen3在昇腾910B上的推理效率实测

本文深度对比了昇腾910B平台上两大推理框架MindIE与vLLM-Ascend的性能表现。通过实测Qwen3系列模型,详细分析了二者在单卡、多卡场景下的推理效率、扩展性及生产环境适用性,为AI算力基础设施选型提供关键参考。

weixin_29214335的博客 1193

python库--sklearn--流程图

转载于:https://www.cnblogs.com/P--K/p/8342235.html

weixin_30660027的博客 285

Angular 相关的知识点和项目汇总

Angular 知识点和项目汇总

weixin_45428910的博客 578

PLC模拟量输入电路设计:±10V与±20mA信号调理全解析

在工业自动化和数据采集系统中,模拟量输入是连接物理世界与数字控制的核心桥梁。无论是变送器输出的4-20mA电流环,还是伺服驱动与信号发生器提供的±10V电压信号,PLC和采集模块都需要在复杂现场环境下稳定、精准地完成信号采集。理解信号体制的原理——电流环抗长线干扰、电压环响应快——是设计模拟输入前端的基础。通过精密电阻网络实现分压与采样,利用运放完成双极性到单极性的电平搬移,配合TVS与滤波电路保障可靠性,并经过ADC量化与校准流程,最终构建出兼顾精度、成本和工业级鲁棒性的完整信号链路。本文面向硬件工程师与

weixin_29163797的博客 301

机器学习实战-关联规则

``数据挖掘就是对数据进行处理,并以某种方式分析源数据,从中发现一些潜在的 有用的信息,所以数据挖掘又称作知识发现。这里的“某种方式”就是机器学习算法。 关联规则作为经典机器学习算法之一,搞懂关联规则自然有着很重要的意义。顾名思义, 关联规则就是发现数据背后存在的某种规则或者联系。 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline %c

hui1097的博客 1034

FeynRules的上手使用3--运行

FeynRules的运行 接上两篇,在我们正确的设定模型参数和拉氏量之后,就可以运行FeynRules来推导费曼规则。 装载文件 首先需要设定FeynRules文件所在位置,并装载FeynRules模块: $FeynRulesPath = SetDirectory[ ] << FeynRules` 接下来是装载写好的模型文件: LoadModel[ < file.fr >, < file2.fr >, … ] 模型文件后缀为".fr",可以分几块构成。模型描述可以写在

cool_bot的博客 1075

Data Mining_聚类分析&分类器&关联规则&回归分析 (Python)

Data Mining_聚类分析&分类器&关联规则&回归分析 (Python)

weixin_45646640的博客 1002

半导体制造中的通孔缺陷与冗余通孔技术解析

通孔(Via)是半导体制造中连接不同金属层的关键结构,其可靠性直接影响芯片良率。随着工艺节点演进至28nm及更先进制程,通孔缺陷导致的良率损失日益显著,主要表现为完全开路和高阻态两种失效模式。冗余通孔技术通过在关键位置增加备用连接,可有效提升芯片可靠性,其实现涉及物理冗余与电气冗余两种方案。该技术在7nm/5nm工艺中已证明可将通孔相关缺陷率降低10-100倍,但面临设计规则复杂性、规模处理效率和动态合规验证等工业化挑战。智能双切通孔插入流程通过动态DRC规则解析、奇偶层级并行处理和增量式验证等创新方法,显

weixin_35982453的博客 383

CTF-Web学习笔记:服务端请求伪造(SSRF)篇

本文系统介绍了CTF比赛中SSRF漏洞的攻防技术。首先解析了SSRF的核心原理,即利用服务器对用户输入URL的未校验缺陷,诱导其访问内网资源。然后详细分析了5类常见CTF题型:文件读取、内网探测、云服务元数据窃取、协议绕过及组合漏洞利用。重点讲解了绕过URL过滤、利用特殊协议(如dict://、gopher://)等实战技巧,并通过一道SSRF+Redis的高阶题目演示完整攻击链。最后给出防御建议:严格校验输入URL、禁用危险协议、实施内网隔离等。

Deng7326的博客 1705

删除符合一定条件的若干行数据

关键: #删除month字段中内容是'1/','2/','6/','7/','8/','9/','10','11','12'的行 data=data[~(data['month'].isin(['1/','2/','6/','7/','8/','9/','10','11','12']))] #仅删除字段名为month的一整列数据 data=data.drop(['month'],axis=1) import pandas as pd import numpy as np #导入数据 #data .

ch206265的博客 1513

【XCharts插件】3-1、制作图表及代码生成图表(v1.0)

XCharts插件是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。【Unity3D插件】XCharts插件完全教程《全网最全》-专栏文章目录OK,这是v1.0版本的XCharts插件的创建图表,代码生成图表的教程。可能有人要问了,既然都更新到v3.0了,还写啥v1.0教程呢。因为有些项目就是用v1.0去制作图表了,也没有太多的精力去更新插件,所以就一直用的v1.0,而且v1.0已经能实现大部分的图标样式了,所以,博主还是单独写了一篇文章来介绍v1.0的功能。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1293

【Python】sklearn教程

sklearn是 Python 中一个非常重要的机器学习库,全称为。它是基于Python语言的机器学习工具,提供了一系列简单高效的机器学习算法。sklearn库通常与NumPy和SciPy库一起使用,用于数据预处理、特征选择、模型训练、模型评估等机器学习的各个方面。sklearn 的设计理念是“API的一致性”、“可检验性”和“通用性”,这使得它非常易于使用和扩展。

Young_Pro的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

利用 python 实现 KNN 算法(自己实现 和 sklearn)

利用 python 实现 KNN 算法(自己实现 和 sklearn)创作背景思路讲解了解算法作业思路第一步第二步第三步第四步第五步第六步(The Final Step)结尾 创作背景 昨天有个朋友请我帮他做一个 python 的作业,作业要求如下图(翻译过) 也就是: 给定了数据集,使用 KNN 算法完成下列目标 编写 自己的 代码实现 KNN 并且用绘制图像 使用 sklearn 绘制图像(使用 KNeighborsClassifier 进行分类) 绘制的图像效果如下 思路讲解 先开始我很懵,毕

lhys666的博客 3万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python中机器学习神器——sklearn模块

参考文章 Python机器学习笔记:sklearn库的学习 ML神器:sklearn的快速使用 机器学习与Sklearn的初识 传统的机器学习任务从开始到建模的一般流程是:获取数据 → 数据预处理 → 训练建模 → 模型评估 → 预测,分类。 Skikit-learn算法库 由图中,可以看到库的算法主要有四类:分类,回归,聚类,降维。其中: 常用的回归:线性、决策树、SVM、KNN ; 常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯; 既可以回归也可以分类的算法:随机森林、Adaboost、Gr

Fo*(Bi)的博客 8482

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python之Sklearn使用教程

1.Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点: 简单高效的数据挖...

谓之小一 17万+

【机器学习基础 3】 sklearn库

Scikit-learn(简称sklearn)是一个用于机器学习的Python库,它包含了许多常用的机器学习算法、预处理技术、模型选择和评估工具等,可以方便地进行数据挖掘和数据分析。Scikit-learn建立在NumPy、SciPy和Matplotlib之上。

yewanyuan的博客 1万+

【机器学习】两种方法实现KNN算法:纯Python实现 + 调用Sklearn库实现(使用Iris数据集)

KNN算法是机器学习中一种常见的监督学习方法,对于初学者来说比较友善。本文首先介绍KNN算法的基础知识,再介绍两种方法实现KNN算法。 目录算法简介数据集简介纯Python实现调用Sklearn库实现 算法简介 算法步骤: 计算已知类别数据集中的点与当前点之间的距离; 按照距离递增次序排序; 选取与当前点距离最小的k个点; 确定前k个点所在类别的出现频率; 返回前k个点出现频率最高的类别作为当前点的预测分类。 算法中的距离共分为两种: 数据集简介 鸢尾花(Iris)数据集是机器学习中应用比较广泛的数

杨小浩浩的博客 8729

python机器学习之sklearn分类、聚类、回归、模型选择、降维、数据预处理

scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy,SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。官网搜索相关语法https安装sklearn#不是pipinstall-Usklearn。...

m0_59485658的博客 5768

Python之sklearn基础教程

Scikit-learn是一个Python的机器学习库,它提供了大量的机器学习算法,包括分类、回归、聚类、降维等。Scikit-learn库是基于Python的NumPy和SciPy库,因此它可以方便地处理大数据集,并且提供了简单易用的接口,使得机器学习变得更加容易上手。干货记得点赞、收藏。

Linux运维老纪的博客 1456

用python+sklearn(机器学习)实现天气预报数据 模型和使用

用python+sklearn机器学习实现天气预报 模型和使用项目地址系列教程0.前言1.建立模型a.准备引入所需要的头文件选择模型选择评估方法获取数据集b.建立模型c.获取模型评估结果d.用joblib模块保存模型e.封装2.总控代码使用方法 项目地址 github项目:PYWeatherReport 系列教程 机器学习参考篇: python+sklearn+kaggle机器学习 用python+sklearn(机器学习)实现天气预报数据 数据 用python+sklearn(机器学习)实现天气预报 准备

Eritque arcus的博客 1万+

Python sklearn学习之数据预处理——标准化

Python sklearn学习之数据预处理——标准化 文章目录Python sklearn学习之数据预处理——标准化1. 数据集常见标准化方式min-max标准化(Min-Max-normalization)z-score 标准化(zero-mean-normalization)2. 数据标准化实现2.1 z-score 标准化(zero-mean-normalization)2.1.1 Sta...

洪城浪子的博客 1万+

sklearn专题三:数据预处理

目录 1 概述 1.1 数据预处理与特征工程 数据挖掘的五大流程: 1.2 sklearn中的数据预处理和特征工程 2 数据预处理 Preprocessing & Impute 2.1 数据无量纲化 preprocessing.MinMaxScaler数据归一化 preprocessing.StandardScaler数据标准化 StandardScaler和MinMaxScaler选哪个? 2.2缺失值 impute.SimpleImputer BONUS:用Pan..

Colorfully_lu的博客 4186

python sklearn---模型选择

这节内容很详细齐全,跟着里面的思路走,差不多就能把sklearn的用法以及建模的套路弄懂。一边学习一边理解一边操作一起开始sklearn的学习吧~ sklearn介绍 scikit-learn是数据挖掘与分析的简单而有效的工具。 依赖于NumPy, SciPy和matplotlib。 首先要知道的是sklearn中包含的主要功能有什么? classification 分类 Regre...

bigfatbean 1503

python sklearn 机器学习 使用简介

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。简单高效的数据挖掘和数据分析工具让每个人能够在复杂环境中重复使用建立NumPy、Scipy、MatPlotLib之上。

whatday的专栏 8069
下一篇: python爬取淘宝指定商品价格及其他相关信息,并将其存入sqlite数据库中
然乐乐
博客等级 码龄10年 8粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值