机器学习 | 第一部分:引言与基础 2

文摘   2024-07-17 09:00   河北  

机器学习

第一部分

引言与基础  2

作者:第八星系-向显均

邮箱:13660328708@163.com

由上一节可知:

1、机器学习是一种人工智能的分支,它研究如何让计算机系统通过学习数据来改进自身的性能。可以简单将其定义为一种通过数据和经验自动改进算法的方法,以实现特定任务的技术和方法论。
2、机器学习的核心是据。通过分析和处理大量数据,计算机可以学习出数据中的模式和规律,并且可以基于这些学习结果做出预测或者决策。
3、在机器学习中,法是指用于学习和训练模型的具体方法。模型则是算法学习到的结果,可理解为从数据中提取出来的某种规律或者模式。
4、监督学习(Supervised Learning
使用有标签的数据来训练模型,模型从带有标签的训练数据中学习,目标是预测新的未知数据。常见的应用包括分类问题和回归问题。
特点训练数据包括输入特征和对应的预期输出标签,模型通过学习输入与输出之间的关系来进行预测。
5、无监督学习(Unsupervised Learning)
模型从未标记的数据中学习,目标是发现数据中的模式或结构。常见的应用包括聚类分析和降维。
特点:训练数据只包括输入特征,没有对应的输出标签,模型试图从数据中推断出隐藏的结构或关系。
6、半监督学习(Semi-supervised Learning)
介于监督学习和无监督学习之间,利用带有标签的少量数据和大量未标记数据来训练模型。适用于标记数据稀缺但未标记数据丰富的情况,例如语音识别或图像分类。
特点:通过利用未标记数据的信息来增强模型的学习效果,提高模型的泛化能力。
7、强化学习(Reinforcement Learning)
一种机器学习范式,其中代理(agent)通过与环境的互动学习最优的行为策略,以达到长期的奖励最大化。广泛应用于需要连续决策和交互的领域,如游戏玩法优化、机器人控制和自动驾驶。
特点:通过试错来学习和优化策略。
8、机器学习模型的一个重要目标是具备泛化能力。即在面对新的、以前未见过的数据时也能够表现良好。这要求模型不仅能够记住训练数据,还要能够从中学到普适的规律。
9、在训练机器学习模型时,需评估模型的性能,并对其调优以提高准确性和效率。这通常涉及到使用交叉验证等技术来评估模型在新数据上的表现。

数据处理与探索


一、 数据处理(Data Preprocessing

应用机器学习算法前,需要有对原始数据进行清洗、转换和整理的过程。目的是确保数据质量,使得数据能够有效地被模型所使用。

数据清洗(Data Cleaning

处理数据中的噪声、缺失值、异常值等问题,以提高数据的质量和准确性。

数据转换(Data Transformation)

对数据进行标准化、归一化、特征缩放等操作,以便不同特征具有相似的尺度和范围。

数据集成(Data Integration)

将多个数据源或数据集合并成一个统一的数据集,以便更好地分析和建模。


二、 数据探索性分析(Exploratory Data Analysis, EDA)


通过可视化和统计方法进行数据探索,发现数据中的模式和异常,深入理解数据的特征、结构和模式,有助于发现数据中的隐藏信息和趋势,为建模提供指导。


统计分析

使用统计指标如均值、方差、相关系数等来描述和分析数据的分布和关系。

可视化

通过图表、直方图、散点图等可视化工具展示数据的特征,帮助发现数据的规律和异常。

特征分析

评估每个特征对目标变量的影响和重要性,选择最相关的特征用于建模。



三、 样例说明(Python)


1

假设背景


现有一个海洋生物多样性调查的数据集,

包含了各种海洋环境条件下的生物样本数据,

目标是建立一个模型来预测某种特定海洋物种的存在概率。

2

数据处理步骤和方法


① 数据导入与初步探索

导入数据并进行初步的探索性分析,以了解数据的结构和特征

import matplotlib.pyplot as pltimport pandas as pdimport seaborn as sns# 读取海洋数据集df = pd.read_csv('ocean_biodiversity.csv')
# 查看数据的前几行print(df.head())
# 查看数据的基本信息print(df.info())
# 查看数值型数据的统计摘要print(df.describe())
# 检查缺失值print(df.isnull().sum())


② 处理缺失值

数据集中可能存在缺失值,需结合具体情况选择合适的填充策略

# 填充数值型数据的缺失值,比如体重、长度等df['BodyWeight'].fillna(df['BodyWeight'].median(), inplace=True)
# 填充分类数据的缺失值,比如物种名称df['Species'].fillna('Unknown', inplace=True)


③ 处理异常值

在海洋数据中,异常值可能来自于测量误差或者数据采集过程中的不确定性,需要进行检测和处理。

# 绘制箱线图检查异常值,比如体重分布sns.boxplot(x=df['BodyWeight'])plt.show()
# 根据实际情况处理异常值,比如移除过大或过小的异常值df = df[(df['BodyWeight'] >= 10) & (df['BodyWeight'] <= 100)]


④ 数据转换与特征工程

特征工程是从原始数据中提取特征或者转换特征,以便机器学习算法能够更好地理解和利用数据。

在海洋生物多样性调查中,可能需要对地理位置信息、海洋温度等环境因素进行特征工程。

说明:

A. 时间序列特征:如果数据包含时间信息,可以提取出月份、季节等时间特征。

B. 地理信息特征:如果有经纬度或其他地理信息,可以提取出具体的地理位置或者区域信息。

# 提取地理位置特征,比如经度和纬度df['Latitude'] = df['Coordinates'].apply(lambda x: float(x.split(',')[0]))df['Longitude'] = df['Coordinates'].apply(lambda x: float(x.split(',')[1]))
# 可能需要对时间数据进行处理,比如季节性特征df['Month'] = pd.to_datetime(df['Date']).dt.month


⑤ 数据集成与清理

若数据来自不同的调查源头,需整合数据并确保数据的一致性和完整性。

# 合并多个数据源的数据集df_combined = pd.concat([df1, df2], axis=0)


⑥ 数据标准化与归一化

对于涉及距离计算或者需要比较不同量纲特征的模型,如 KNN 或 SVM,可能需要对数值特征进行标准化或归一化处理,避免特征间的数值差异对模型产生不良影响。

from sklearn.preprocessing import StandardScaler
# 标准化数值特征scaler = StandardScaler()df[['BodyWeight''Length']] = scaler.fit_transform(df[['BodyWeight''Length']])


⑦ 数据分割与建模

将数据集划分为训练集和测试集,并选择合适的机器学习模型进行建模和评估。

from sklearn.model_selection import train_test_split
# 划分特征和标签X = df.drop('Species', axis=1)y = df['Species']
# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 根据任务选择合适的模型进行训练和评估from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()model.fit(X_train, y_train)
# 模型评估accuracy = model.score(X_test, y_test)print(f"模型准确率: {accuracy}")


—END—

后台私信:第八星系

群内每日更新分享数据

进群回复 第八星系

本文编辑|Eva

第八星系人造大气理论爱好者
记录与交流python、matlab等科研工具。记录与交流大气科学的学科知识
 最新文章