数据探索和人工智能化

GUN!!! 2024-06-26 15:31:02 阅读 83

一、概述

  机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。 

机器学习有下面几种定义:

(1)机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

(2)机器学习是对能通过经验自动改进的计算机算法的研究。

(3)机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。

二、常用算法

1.决策树算法:

        决策树及其变种是一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树算法充分利用了树形模型,根节点到一个叶子节点是一条分类的路径规则,每个叶子节点象征一个判断类别。先将样本分成不同的子集,再进行分割递推,直至每个子集得到同类型的样本,从根节点开始测试,到子树再到叶子节点,即可得出预测类别。此方法的特点是结构简单、处理数据效率较高。

2.支持向量机算法

        基本思想可概括如下:首先,要利用一种变换将空间高维化,当然这种变换是非线性的,然后,在新的复杂空间取最优线性分类表面。由此种方式获得的分类函数在形式上类似于神经网络算法。支持向量机是统计学习领域中一个代表性算法,但它与传统方式的思维方法很不同,输入空间、提高维度从而将问题简短化,使问题归结为线性可分的经典解问题。支持向量机应用于垃圾邮件识别,人脸识别等多种分类问题。

3.随机森林算法

        控制数据树生成的方式有多种,根据前人的经验,大多数时候更倾向选择分裂属性和剪枝,但这并不能解决所有问题,偶尔会遇到噪声或分裂属性过多的问题。基于这种情况,总结每次的结果可以得到袋外数据的估计误差,将它和测试样本的估计误差相结合可以评估组合树学习器的拟合及预测精度。此方法的优点有很多,可以产生高精度的分类器,并能够处理大量的变数,也可以平衡分类资料集之间的误差。

4.关联规则算法

        关联规则是用规则去描述两个变量或多个变量之间的关系,是客观反映数据本身性质的方法。它是机器学习的一大类任务,可分为两个阶段,先从资料集中找到高频项目组,再去研究它们的关联规则。其得到的分析结果即是对变量间规律的总结。

三、深度学习

深度学习        深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,Artificial Intelligence)。

        深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。

        深度学习在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

四、应用

  机器学习应用广泛,无论是在军事领域还是民用领域,都有机器学习算法施展的机会。

1.数据分析与挖掘

        “数据挖掘”和"数据分析”通常被相提并论,并在许多场合被认为是可以相互替代的术语。关于数据挖掘,已有多种文字不同但含义接近的定义,例如“识别出巨量数据中有效的.新颖的、潜在有用的最终可理解的模式的非平凡过程”,无论是数据分析还是数据挖掘,都是帮助人们收集、分析数据,使之成为信息,并做出判断,因此可以将这两项合称为数据分析与挖掘。 

        数据分析与挖掘技术是机器学习算法和数据存取技术的结合,利用机器学习提供的统计分析、知识发现等手段分析海量数据,同时利用数据存取机制实现数据的高效读写。机器学习在数据分析与挖掘领域中拥有无可取代的地位。

2.在生物信息学上的应用

        随着基因组和其他测序项目的不断发展,生物信息学研究的重点正逐步从积累数据转移到如何解释这些数据。在未来,生物学的新发现将极大地依赖于在多个维度和不同尺度下对多样化的数据进行组合和关联的分析能力,而不再仅仅依赖于对传统领域的继续关注。序列数据将与结构和功能数据基因表达数据、生化反应通路数据表现型和临床数据等一系列数据相互集成。如此大量的数据,在生物信息的存储、获取、处理、浏览及可视化等方面,都对理论算法和软件的发展提出了迫切的需求。另外,由于基因组数据本身的复杂性也对理论算法和软件的发展提出了迫切的需求。而机器学习方法例如神经网络、遗传算法、决策树和支持向量机等正适合于处理这种数据量大、含有噪声并且缺乏统一理论的领域。

五、部分代码示例

1.

# 导入包

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.cluster import DBSCAN

from sklearn.preprocessing import StandardScaler

#引入机器学习相关的类

from sklearn.cluster import DBSCAN

from sklearn import metrics

from pylab import mpl

# 设置字体为SimHei显示中文

mpl.rcParams['font.sans-serif'] = ['SimHei']

# 设置正常显示字符

mpl.rcParams['axes.unicode_minus'] = False

# 读取数据 并自动为其添加列索引

df=pd.read_csv('filmScore.csv')

df.head()

# 对数据进行标准化,确保DBSCAN按预期工作

scaler = StandardScaler()

df_scaled = scaler.fit_transform(df)

# 使用DBSCAN进行聚类

dbscan = DBSCAN(eps=0.5, min_samples=5)

labels = dbscan.fit_predict(df_scaled)

# 将聚类结果添加到数据框

df['Cluster'] = labels

df.head()

# 找到每个集群的代表点(质心)

centroids = []

for cluster in set(labels):

    if cluster != -1:  # -1代表噪声

        cluster_points = df[df['Cluster'] == cluster]

        centroid = cluster_points.mean()  # 使用均值作为质心

        centroids.append(centroid)

centroids_df = pd.DataFrame(centroids)

print("质心信息:")

print(centroids_df)

# 可视化聚类结果

plt.scatter(df_scaled[:, 0], df_scaled[:, 1], c=labels, cmap='viridis', s=50, alpha=0.6)

plt.scatter(centroids_df.iloc[:, 0], centroids_df.iloc[:, 1], color='red', s=200, marker='x', label='Centroids')

plt.xlabel('filmname1')

plt.ylabel('filmname2')

plt.title('DBSCAN Clustering with Centroids')

plt.legend()

plt.show()

 

#当eps=1.3,min_samples=20时#

# 创建 DBSCAN 模型

dbscan = DBSCAN(eps=1.3, min_samples=20)

# 拟合模型并预测聚类标签

labels = dbscan.fit_predict(df_scaled)

# 可视化聚类结果

plt.scatter(df_scaled[:, 0], df_scaled[:, 1], c=labels, cmap='viridis', s=50, alpha=0.6)

plt.xlabel('filmname1')

plt.ylabel('filmname2')

plt.title('DBSCAN Clustering with Modified Parameters (eps=1.3, min_samples=20)')

plt.show()

2.

#导入

from sklearn.datasets import load_breast_cancer

from sklearn.model_selection import train_test_split

from sklearn.svm import SVC

from sklearn.tree import DecisionTreeClassifier

from sklearn.preprocessing import StandardScaler

from sklearn.metrics import accuracy_score, classification_report, confusion_matrix

import matplotlib.pyplot as plt

import pandas as pd

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

# 加载数据

data =load_breast_cancer()

df=pd.DataFrame(data.data,columns=data.feature_names)

df['target']=data.target

# 建立支持向量机模型

svm_model = SVC(kernel='linear')

svm_model.fit(X_train, y_train)

svm_pred = svm_model.predict(X_test)

print(svm_pred)

# 建立决策树模型

tree_model = DecisionTreeClassifier()

tree_model.fit(X_train, y_train)

tree_pred = tree_model.predict(X_test)

print(tree_pred)

 3.

# 创建线性回归模型对象

linreg = LinearRegression()

# 使用训练集数据拟合模型

linreg.fit(X_train_scaled, y_train)

# 使用测试集数据进行预测

y_pred = linreg.predict(X_test_scaled)

# 计算准确率(对于回归问题,可以使用均方误差作为评估指标)

mse = ((y_pred - y_test) ** 2).mean()

print("线性回归均方误差:", mse)

# 创建随机森林模型对象

rf = RandomForestRegressor()

# 使用训练集数据拟合模型

rf.fit(X_train_scaled, y_train)

# 使用测试集数据进行预测

y_pred = rf.predict(X_test_scaled)

# 计算均方误差作为评估指标

mse = ((y_pred - y_test) ** 2).mean()

print("随机森林均方误差:", mse)

print('较小的均方误差表示模型的预测效果更好')

 

六、总结

        参与机器学习课程是一个充实而有意义的经历,以下是我对这段学习过程的体会和总结:

理论与实践相结合:课程不仅让我掌握了机器学习的理论知识,还通过实际项目和练习让我将理论运用到实践中。这种理论与实践相结合的学习方式使我更加深入地理解了机器学习算法和技术。

团队合作与交流:在课程中,我有机会与同学们组成团队,共同完成项目和任务。通过团队合作,我学会了有效沟通、协作解决问题,以及尊重和倾听他人意见的重要性。

挑战与成长:机器学习课程中的项目和作业往往具有一定的挑战性,需要不断思考和探索。通过克服这些挑战,我不仅提升了解决问题的能力,还在不断的学习和实践中获得了成长。

探索未知领域的勇气:在课程中,我接触到了一些以前未曾涉足的领域和技术,如深度学习、强化学习等。这种探索未知领域的经历让我更加勇敢去尝试新事物,拓展自己的知识边界。

持续学习的重要性:机器学习是一个快速发展的领域,课程结束并不意味着学习的终结。通过这段学习经历,我意识到持续学习和不断更新知识是非常重要的,以跟上行业的发展和变化。

        参与机器学习课程是我在学习道路上的一次宝贵经历,它不仅让我获得了知识和技能,更重要的是培养了我的学习能力、团队合作精神和解决问题的能力。这段经历将成为我未来发展的宝贵财富。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。