机器学习(python)笔记整理

这篇具有很好参考价值的文章主要介绍了机器学习(python)笔记整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、数据预处理:

1. 缺失值处理:

2. 重复值处理:

3. 数据类型:

二、特征工程:

1. 规范化:

2. 归一化:

3. 标准化(方差):

三、训练模型:

如何计算精确度,召回、F1分数


一、数据预处理:

思维导图

机器学习(python)笔记整理,机器学习,笔记

1. 缺失值处理:

在数据中存在缺失值的情况下,可以采用删除缺失值、均值填充、中位数填充、插值法等方式进行缺失值处理。

import pandas as pd
import numpy as np

# 创建DataFrame,包含缺失值
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5], 'B': [6, np.nan, 8, np.nan, 10]})
print(df)

# 删除缺失值
df.dropna(inplace=True)
print(df)

# 均值填充
df.fillna(df.mean(), inplace=True)
print(df)

# 中位数填充
df.fillna(df.median(), inplace=True)
print(df)

# 插值法填充
df.interpolate(inplace=True)
print(df)

2. 重复值处理:

在数据中存在重复值的情况下,可以采用删除重复值、保留重复值、统计重复值等方式进行重复值处理。

import pandas as pd
import numpy as np
 
# 创建DataFrame,包含重复值
df = pd.DataFrame({'A': [1, 2, 2, 4, 5], 'B': [6, 6, 8, 8, 10]})
print(df)

# 删除重复值
df.drop_duplicates(inplace=True)
print(df)

# 保留重复值
df[df.duplicated(keep=False)]
print(df)

# 统计重复值
df.duplicated()
print(df.duplicated().sum())

3. 数据类型:

在数据中存在不同数据类型的情况下,可以采用转换数据类型、或者删除对模型影响不大的数据类型等方式进行数据类型处理。

import pandas as pd
 
# 创建DataFrame,包含不同数据类型
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['4', '5', '6']})
print(df)

# 转换数据类型
df['B'] = df['B'].astype(int)
print(df)

# 删除对模型影响不大的数据类型
df.drop(columns='B', inplace=True)
print(df)

二、特征工程:

1. 规范化:

规范化的目的是将特征的值域缩小到[0,1]之间,以消除各特征值域不同的影响,并提高模型的精度。

1.one-hot编码

情况一 . 一个特征中两个不同的特征值(one-hot编码)

import pandas as pd
#情况一  一个特征中两个不同的特征值(one-hot编码)
'''
1 = male
0 = female
'''
df1 = pd.DataFrame({'Gender': ['female','male', 'female','female', 'male','male']})
df1['Gender'].replace({'female':1,'male':0})

机器学习(python)笔记整理,机器学习,笔记

 情况二 一个特征中有3个不同的特征值(标签编码,一般1对应标签占位)

import pandas as pd

#情况二 一个特征中有多个不同的特征值(标签编码,一般1对应标签占位)

# 创建DataFrame,包含需要规范化的特征
df2 = pd.DataFrame({'A': ['one','one', 'three','twe', 'one','three']})


#使用标签编码来规范化 
'''
分析有三个不同值(将值1作为特征占位)
one  twe  three
1     0     0
0     1     0 
0     0     1
'''
# 将值替换
df2=df2.replace({'one':'100','twe':'010','three':'001'}).astype('category')

df2

机器学习(python)笔记整理,机器学习,笔记

情况三 个特征中有3个以上不同的特征值(标签法) ---LabelEncoder

from sklearn.preprocessing import LabelEncoder  
  
# 创建一个LabelEncoder对象  
le = LabelEncoder()  
  
# 假设有一个分类变量list  
categories = ['one', 'twe', 'three', 'four', 'one']  
  
# 使用LabelEncoder进行编码  
encoded_categories = le.fit_transform(categories)  
  
# 输出编码结果  
print(encoded_categories)

机器学习(python)笔记整理,机器学习,笔记

2. 归一化:

归一化与规范化类似,也是将特征的值域缩小到[0,1]之间,但与规范化不同的是,归一化是对整个数据集的缩放,而规范化是对单个特征的缩放。示例代码:
 

import pandas as pd
 
# 创建DataFrame,包含需要归一化的特征
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
 
#法1 (自定义公式)

# 将值转换为 0-1值,增加相似度
# 公式  :(x-min)/(max-min)

df['A']=(df['A']-df['A'].min())/(df['A'].max()-df['A'].min())
df['B']=(df['B']-df['B'].min())/(df['B'].max()-df['B'].min())
df


#法2(调用函数)
from sklearn.preprocessing  import MinMaxScaler
aa=MinMaxScaler()
#归一化
aa.fit_transform(df[['A','B']])

机器学习(python)笔记整理,机器学习,笔记

3. 标准化(方差):

标准化是将特征值转换为标准正态分布,使得特征值的均值为0,标准差为1,以消除特征值之间的量纲影响,并提高模型的精度。

数据转化到均值为0,方差为1的范围内,方差和标准差越趋近于0,则表示数据越集中;如果越大,表示数据越离散。

使用sklearn.preprocession import StandardScaler

import pandas as pd
from sklearn.preprocessing import StandardScaler
# 创建DataFrame,包含需要标准化的特征
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
 
# 使用StandardScaler标准化特征
scaler = StandardScaler()
df_norm = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
print(df_norm)

三、训练模型:

在对数据进行预处理和特征工程之后,就可以训练模型了。在这里,我们以xgboost模型为例进行训练。

from xgboost import XGBClassifier,XGBRegressor

 常用模型:XGBClassifier 和 XGBRegressor

XGBRegressor和XGBClassifier都是XGBoost库中的模型,分别用于回归和分类任务。

XGBRegressor是用于回归任务的模型,它通过最小化目标函数来学习最佳的模型参数。在训练过程中,XGBRegressor会通过梯度提升方法迭代地优化模型参数,以最小化预测误差。

XGBClassifier是用于分类任务的模型,它通过最大化目标函数来学习最佳的模型参数。在训练过程中,XGBClassifier会通过梯度提升方法迭代地优化模型参数,以最大化分类准确率。

因此,XGBRegressor和XGBClassifier的主要区别在于它们的目标函数不同,分别适用于回归和分类任务。

示例代码:


# 这行代码是从sklearn.model_selection库中导入train_test_split函数,该函数用于将数据集分割为训练集和测试集。
from sklearn.model_selection import train_test_split

# 这行代码将您的主数据集(特征)和目标变量(标签)分割为训练集和测试集。test_size=0.33表示测试集占总数据的33%,random_state=7用于每次分割都产生相同的数据分布,确保结果的可重复性。
X_train, X_test, y_train, y_test = train_test_split(df_train, df_y, test_size=0.33, random_state=7)

# 这行代码从xgboost库中导入XGBClassifier类。这是一个实现了梯度提升决策树算法的分类器。
from xgboost import XGBClassifier

# 创建XGBClassifier的一个实例。这里没有指定任何参数,所以模型会使用默认参数。
model = XGBClassifier()

# eval_set是一个列表,其中包含将用于评估模型性能的测试数据集。这对于早期停止是必要的,以防止过拟合。
eval_set = [(X_test, y_test)]

# 这行代码训练模型。early_stopping_rounds=10表示如果在10轮迭代中,性能没有提升,训练将停止。eval_metric='logloss'设置了评估标准。eval_set是我们之前设置的测试数据,verbose=True表示在训练时显示日志。
model.fit(X_train, y_train, early_stopping_rounds=10, eval_metric='logloss', eval_set=eval_set, verbose=True)

# 使用训练好的模型对测试集进行预测。
y_pred = model.predict(X_test)


# 计算模型的准确度,即预测正确的比例。
# accuracy = accuracy_score(y_test, predictions)
# print(accuracy)

# 从sklearn.metrics导入f1_score函数。
from sklearn.metrics import f1_score

# 计算F1得分,这是准确率和召回率的加权平均值,通常用于评估分类模型的性能,尤其是在不平衡数据集中。
f1 = f1_score(y_test, y_pred)

# 打印F1得分。
print(f1)

 机器学习(python)笔记整理,机器学习,笔记文章来源地址https://www.toymoban.com/news/detail-723588.html


如何计算精确度,召回、F1分数

from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score

# 真实标签和模型预测结果
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]

# 计算混淆矩阵
conf_matrix = confusion_matrix(y_true, y_pred)
TP, FP, TN, FN = conf_matrix.ravel()

# 计算精确度、召回率和F1分数
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)

print("Precision:", precision)
print("Recall:", recall)
print("F1 Score:", f1)

到了这里,关于机器学习(python)笔记整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python机器学习课程——决策树全网最详解超详细笔记附代码

    1.概述 决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。 决策树方法最早产生于上世纪60年代,到

    2024年02月04日
    浏览(28)
  • 机器学习整理

    机器学习研究能够从经验中自动提升自身性能的计算机算法。 推理期 :赋予机器逻辑推理能力 知识期 :使机器拥有知识 学习期 :让机器自己学习 有监督学习 :从有标记的样本中学习,如决策树。 无监督学习 :从不含标记的样本中学习,如K均值算法。 经验误差 : 泛化

    2024年01月24日
    浏览(24)
  • 机器学习面试中常见问题整理

    机器学习( ML )作为目前一个比较火领域,提供了许多有趣且高薪的工作和机会。 无论你是刚刚踏入机器学习领域的新手,还是已经积累了一定经验的从业者,面试都是检验你技能和知识的重要环节。 本文将梳理一些常见的面试问题,让你在面试中更加自信从容。 想要从事

    2024年03月11日
    浏览(38)
  • 机器学习笔记 - 使用 YOLOv5、O​​penCV、Python 和 C++ 检测物体

            YOLO v5虽然已经不是最先进的对象检测器,但是YOLOv5 使用了一个简单的卷积神经网络 CNN架构(相对YOLO v8来讲,不过v8精度是更高了一些),更易理解。这里主要介绍如何轻松使用 YOLO v5来识别图像中的对象。将使用 OpenCV、Python 和 C++ 来加载和调用我们的 YOLO v5 模型

    2024年02月13日
    浏览(27)
  • 机器学习笔记 - 基于Python发现最佳计算机视觉模型的神经架构搜索技术NAS

            近年来,随着深度学习技术的兴起,计算机视觉领域取得了巨大进步。事实证明,卷积神经网络 (CNN) 在图像识别任务中异常强大,但针对特定问题设计最佳架构仍然是一项具有挑战性的任务。这就是神经架构搜索(NAS)发挥作用的地方。NAS 是一种尖端技术,可以

    2024年02月14日
    浏览(31)
  • 机器学习笔记之核函数再回首:Nadarya-Watson核回归python手写示例

    本节从代码角度,介绍基于 高维 特征向量使用 Nadaraya-Watson text{Nadaraya-Watson} Nadaraya-Watson 核回归 的示例。 在注意力机制基本介绍中,我们提到过这种基于 注意力机制权重 的 懒惰学习方法 。该方法与 注意力机制 关联的核心操作有如下步骤: 通过核函数描述样本之间的关联

    2024年02月10日
    浏览(38)
  • 【笔记整理】元学习笔记

    参考 元学习——MAML论文详细解读 迁移学习概述(Transfer Learning) 一文入门元学习(Meta-Learning) 基于度量的元学习和基于优化的元学习 - 知乎 (zhihu.com) 元学习(Meta Learning)与迁移学习(Transfer Learning)的区别联系是什么? - 许铁-巡洋舰科技的回答 - 知乎 1、概述(“多任务

    2024年02月08日
    浏览(29)
  • Azure - 机器学习:使用 Apache Spark 进行交互式数据整理

    关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 数据整理已经成为机器学习项目中最重要的步骤之一。

    2024年02月08日
    浏览(35)
  • shell学习笔记(详细整理)

    主要介绍:主要是常用变量,运算符,条件判断,流程控制,函数,常用shell工具(cut,sed,awk,sort)。 程序员为什么要学习Shell呢? 1)需要看懂运维人员编写的Shell程序。 2)偶尔会编写一些简单Shell程序来管理集群、提高开发效率。 (1)Linux提供的Shell解析器有: (2)bash和sh的

    2024年02月11日
    浏览(21)
  • VIAN学习笔记整理

    VLAN(Virtual Local Area Network)的中文名为\\\"虚拟局域网\\\"。 VLAN技术的出现,使得管理员根据实际应用需求,把同一物理局域网内的不同用户逻辑地划分成不同的广播域,每一个VLAN都包含一组有着 相同需求 的计算机工作站,与物理上形成的LAN有着相同的属性。 由于它是 从逻辑上

    2024年01月17日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包