您的位置:首页 > 汽车 > 新车 > 哪个建站软件比较好带论坛_唐山app开发_网店如何做推广_搜索广告优化

哪个建站软件比较好带论坛_唐山app开发_网店如何做推广_搜索广告优化

2024/12/27 22:40:29 来源:https://blog.csdn.net/qq_61600833/article/details/144751416  浏览:    关键词:哪个建站软件比较好带论坛_唐山app开发_网店如何做推广_搜索广告优化
哪个建站软件比较好带论坛_唐山app开发_网店如何做推广_搜索广告优化

目录

一、简介

1、什么是机器学习

2、为什么要学习机器学习

3、机器学习可以解决哪些问题

(1). 图像识别与计算机视觉

(2). 自然语言处理 (NLP)

(3). 推荐系统

(4). 预测与分类

(5). 医疗与生物信息

(6). 工业与制造

(7). 游戏与娱乐

(8). 其他领域

4、机器学习的步骤

5、学习机器学习的准备工作

二、KNN(K-Nearest Neighbors,K近邻算法)

1、简介

2、KNN算法的优缺点

3、样本之间的距离

(1)、欧式距离(Euclidean Distance)

(2)、曼哈顿距离(Manhattan Distance)

(3)、机器学习中其他距离公式

4、数据预处理

(1)、数据可视化

(2)、分割特征与标签

5、KNN算法处理分类问题

实战代码

6、KNN算法处理回归任务

实战代码


一、简介

1、什么是机器学习

机器学习是人工智能的一个分支,专注于通过数据训练模型,使计算机能够从经验中学习并改进性能,而无需显式编程。其核心是让机器从数据中识别模式,并利用这些模式进行预测或决策。一句话概括就是:利用数学中的公式 总结出 数据中的规律。机器学习主要分为三类:

  • 监督学习:使用带标签的数据训练模型,用于预测或分类。

  • 无监督学习:使用无标签的数据,发现数据中的结构或模式。

  • 强化学习:通过试错和奖励机制,训练模型在环境中做出最优决策。

2、为什么要学习机器学习

  • 信息爆炸时代,数据量太大,人工已经无法处理
  • 重复性的工作交给计算机来做
  • 潜在一些信息之间的关联人类不容易直接发现
  • 机器学习确实有效的解决很多问题
  • 机器学习应用领域非常广泛
  • ........

3、机器学习可以解决哪些问题

(1). 图像识别与计算机视觉
  • 人脸识别:用于安全验证、社交媒体 tagging。

  • 医学影像分析:辅助诊断疾病,如癌症检测。

  • 自动驾驶:识别道路、行人、交通标志等。

(2). 自然语言处理 (NLP)
  • 机器翻译:如 Google 翻译。

  • 情感分析:分析用户评论、社交媒体情绪。

  • 聊天机器人:提供客户支持或个性化服务。

(3). 推荐系统
  • 电商推荐:如亚马逊、淘宝的商品推荐。

  • 内容推荐:如 Netflix、YouTube 的视频推荐。

(4). 预测与分类
  • 金融风控:预测贷款违约风险。

  • 销售预测:预测产品需求或销售额。

  • 垃圾邮件过滤:自动识别并过滤垃圾邮件。

(5). 医疗与生物信息
  • 疾病预测:基于患者数据预测疾病风险。

  • 药物研发:加速新药发现和临床试验。

(6). 工业与制造
  • 质量控制:检测产品缺陷。

  • 预测性维护:预测设备故障,减少停机时间。

(7). 游戏与娱乐
  • 游戏 AI:开发智能游戏对手。

  • 内容生成:自动生成音乐、艺术或文本。

(8). 其他领域
  • 气候预测:分析气候数据,预测天气变化。

  • 能源优化:优化能源消耗,提高效率。

4、机器学习的步骤

收集处理数据 —> 建立模型 —> 预测结果

5、学习机器学习的准备工作

学习机器学习首先要配置好环境,如:安装好合适的第三方库。以下是进行机器学习需要的一些库:sklearn、numpy、pandas、scipy、matplotlib。

安装方法:

pip install 库名==版本号 -i 镜像地址

注意:安装的库版本一定要合适。后期很多报错可能都是因为第三方库版本的问题引起的。

当完成一系列的准备工作就可以开始机器学习的算法学习啦!!!

二、KNN(K-Nearest Neighbors,K近邻算法)

1、简介

KNN(K-Nearest Neighbors,K近邻算法)是一种简单且常用的监督学习算法,主要用于分类回归任务。它的核心思想是:通过计算待预测样本与训练集中所有样本的距离,找到距离最近的K个样本,然后根据这些邻居的标签来预测待预测样本的标签。

2、KNN算法的优缺点

优点:

  • 简单,易于理解,易于实现,无需训练;
  • 适合对稀有事件进行分类;
  • 对异常值不敏感。

缺点︰

  • 样本容量比较大时,计算时间很长;
  • .不均衡样本效果较差;

3、样本之间的距离

以下是KNN算法常用的两种距离公式

(1)、欧式距离(Euclidean Distance)

(2)、曼哈顿距离(Manhattan Distance)

        

(3)、机器学习中其他距离公式

闵可夫斯基距离 (Minkowski Distance)、余弦相似度 (Cosine Similarity)、切比雪夫距离 (Chebyshev Distance)、汉明距离 (Hamming Distance)、马氏距离 (Mahalanobis Distance)、杰卡德距离 (Jaccard Distance)等等

4、数据预处理

(1)、数据可视化

我们有如下文本数据,一共1000行,其中前三列为特征,最后一列为标签。

可以通过如下代码将每种标签的数据进行分类,在将其进行展示

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import xlabel, ylabeldata = np.loadtxt('./data/datingTestSet2.txt')
data_1 = data[data[:,-1] == 1]
data_2 = data[data[:,-1] == 2]
data_3 = data[data[:,-1] == 3]# 数据可视化
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.scatter(data_1[:,0],data_1[:,1],zs=data_1[:,2],c='#00FFFF',marker='^')
ax.scatter(data_2[:,0],data_2[:,1],zs=data_2[:,2],c='#FF0000',marker='o')
ax.scatter(data_3[:,0],data_3[:,1],zs=data_3[:,2],c='#006400',marker='+')
ax.set(xlabel='X', ylabel='Y', zlabel='Z')
plt.show()

(2)、分割特征与标签

将特征储存在变量x中,标签储存在变量y中

# KNN算法
data = np.loadtxt('./data/datingTestSet2.txt')
# 特征
x = data[:,:-1]
# 类别
y = data[:,-1]

5、KNN算法处理分类问题

分类任务的目标是将输入数据划分到预定义的类别(标签)中。

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights='uniform',algorithm='auto',leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)
# n_neighbors:用于指定邻近数据的数量
# p:用于指定距离度量方式,默认为欧式距离,其中p=1是曼哈顿距离,p=2是欧式距离
实战代码
import numpy as np
from sklearn.neighbors import KNeighborsClassifier# KNN算法
data = np.loadtxt('./data/datingTestSet2.txt')
# 特征
x = data[:,:-1]
# 类别
y = data[:,-1]neigh = KNeighborsClassifier(n_neighbors=10,metric='euclidean')
'''参数metric = 参数p
p = 1是曼哈顿距离;p = 2是欧式距离;p为其他值是闵可夫斯基距离
neigh = KNeighborsClassifier(n_neighbors=10,p=2)'''# 训练
neigh.fit(x,y)
# 预测(单个数据)
print(neigh.predict([[50000,8.2,1.01]]))
# 预测(同时预测多个数据)
predict_data = [[12222,2,0.5],[23321,0.5,1],[1222,8,0.7],[45788,2.3,1.2]]
print(neigh.predict(predict_data))

6、KNN算法处理回归任务

回归任务的目标是预测一个连续值。

sklearn.neighbors.KNeighborsRegressor(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs
)
# n_neighbors:用于指定邻近数据的数量
# p:用于指定距离度量方式,默认为欧式距离,其中p=1是曼哈顿距离,p=2是欧式距离
实战代码
import numpy as np
from sklearn.neighbors import KNeighborsRegressor
data = np.loadtxt('./data/fangjia.txt',encoding='utf-8')
# 特征
x = data[:,:-1]
# 结果
y = data[:,-1]result = KNeighborsRegressor(n_neighbors=5)
result1 = KNeighborsRegressor(n_neighbors=7)
result.fit(x,y)
result1.fit(x,y)
print('k=5的预测结果:',result.predict([[2.82838,0.00,18.120,0,0.5320,5.7620,40.32,4.0983,24,666.0,20.21,392.93,10.42]]))
print('k=7的预测结果:',result1.predict([[2.82838,0.00,18.120,0,0.5320,5.7620,40.32,4.0983,24,666.0,20.21,392.93,10.42]]))

 

后续会更新更多机器学习算法,一起学习吧!! 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com