机器学习总结一

本文总结了机器学习的关键术语,包括监督学习与非监督学习,分类与回归,聚类等。同时介绍了数据预处理的重要步骤,如特征提取、缺失数据处理、数据定标和转换。并通过线性回归的例子,展示了如何处理数据并进行模型训练,以预测海拔与气温的关系。
摘要由CSDN通过智能技术生成

机器学习总结一

机器学习重要术语

监督学习与非监督学习:根据训练数据是否拥有标记信息,学习任务分为监督学习和非监督学习
分类与回归:监督学习的代表是分类和回归,想要预测的值为离散的监督学习为分类,想要预测的值为连续的监督学习为回归
聚类:非监督学习的代表为聚类,将训练数据分成若干组。
机器学习流程:数据获取——数据清洗——特征工程——预处理——选择机器学习模型——模型训练(与模型调参迭代)——模型部署

数据预处理

特征提取:基于图像的行人行为检测需要提取图像的梯度分布直方图;自然语言处理需要提取文字的n-gram
缺失数据处理:使用均值或者中间值代替数值类型的缺失数据;使用众数代替分类数据的缺失;使用聚类的方式找到相似的数据点,使用这些相似数据点的均值代替缺失数据;如果某一个特征的数据丢失率太高, 直接丢弃这个特征的数据也许更好
数据定标:归一化处理或者标准化处理
归一化:
x n o r m = x − x m i n x m a x − x m i n x_{norm}=\frac{x-x_{min}}{x_{max}-x_{min}} xnorm=xmaxxminxxmin
标准化:
x s t d = x − μ σ x_{std}=\frac{x-\mu }{\sigma } xstd=σxμ
数据转换:独热编码(One-Hoting encoding)

线性回归练习

练习描述:
气温会随着海拔高度的升高而降低, 我们可以通过测量不同海拔高度的气温来预测海拔高度和气温的关系.
我们假设海拔高度和气温的关系可以使用如下公式表达:
y(气温) = a * x(海拔高度) + b
理论上来讲, 确定以上公式 a 和 b的值只需在两个不同高度测试, 就可以算出来 a 和 b 的值了. 但是由于所有的设备都是有误差的, 而使用更多的高度测试的值可以使得预测的值更加准确.
我们提供了在9个不同高度测量的气温值, 请你根据今天学习的线性回归方法预测 a 和 b 的值. 根据这个公式, 我们预测一下在8000米的海拔, 气温会是多少?

##导入数据预处理和线性分析工具
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

##导入数据并可视化
data = pd.read_csv("data/height.vs.temperature.csv")
plt.figure(figsize=(16, 8))
plt.scatter(data['height'], data['temperature'], c ='black')
plt.xlabel("height")
plt.ylabel("temperature")
plt.show()

数据可视化结果:

## 训练数据
X = data['height'].values.reshape(-1,1)
y = data['temperature'].values.reshape(-1,1)

reg = LinearRegression()
reg.fit(X, y)
## 打印训练结果
print('a = {:.5}'.format(reg.coef_[0][0]))
print('b = {:.5}'.format(reg.intercept_[0]))

print("线性模型为: Y = {:.5}X + {:.5} ".format(reg.coef_[0][0], reg.intercept_[0]))

'''
打印结果:
a = -0.0065695
b = 12.719
线性模型为: Y = -0.0065695X + 12.719 
'''
## 将训练出的模型可视化
predictions = reg.predict(X)

plt.figure(figsize=(16, 8))
plt.scatter(data['height'], data['temperature'], c ='black')
plt.plot(data['height'], predictions,c ='blue', linewidth=2)
plt.xlabel("height")
plt.ylabel("temoerature")
plt.show()

训练出的模型结果:
在这里插入图片描述

## 预测下海拔1200时的温度
predictions = reg.predict([[1200]])
print('1200米高度时的温度为{:.5}摄氏度'.format( predictions[0][0]) )
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值