机器学习教程
机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。
机器学习是让机器通过经验(数据)来做决策和预测。
机器学习已经广泛应用于许多领域,包括推荐系统、图像识别、语音识别、金融分析等。
举个例子,通过机器学习,汽车可以学习如何识别交通标志、行人和障碍物,以实现自动驾驶。
机器学习与传统编程的区别
| 传统编程 | 机器学习 |
|---|---|
| 程序员编写明确的规则 | 计算机从数据中学习规则 |
| 适用于问题明确、规则清晰的情况 | 适用于复杂、规则难以明确的情况 |
| 例子:编写计算器程序 | 例子:编写识别垃圾邮件的程序 |
机器学习的三大要素
机器学习包含三个基本要素:
1. 数据
数据是机器学习的燃料,质量越高、数量越多的数据,通常能让模型学得越好。
- 训练数据 :用来教模型的数据
- 测试数据 :用来检验模型学习效果的数据
- 真实数据 :模型在实际应用中遇到的新数据
2. 算法
算法是机器学习的学习方法,不同的算法适用于不同类型的问题。
- 监督学习 :有标准答案的学习
- 无监督学习 :没有标准答案,自己找规律
- 强化学习 :通过试错和奖励来学习
3. 模型
模型是学习的结果,就像学生学到的知识一样。
- 训练过程 :算法从数据中学习规律
- 推理过程 :使用学到的规律做预测
接下来我们通过一个简单的例子来理解机器学习的基本流程。
我们将使用 Python 创建一个简单的线性回归模型来预测房价。
示例代码
# 导入需要的库importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.linear_modelimportLinearRegressionimportseabornassns# 设置图表风格,让图表更好看sns.set_style("whitegrid")# -------------------------- 设置中文字体 start --------------------------plt.rcParams['font.sans-serif']=[# Windows 优先'SimHei','Microsoft YaHei',# macOS 优先'PingFang SC','Heiti TC',# Linux 优先'WenQuanYi Micro Hei','DejaVu Sans']# 修复负号显示为方块的问题plt.rcParams['axes.unicode_minus']=False# -------------------------- 设置中文字体 end --------------------------# 1. 准备数据# 假设我们有房屋面积和对应的价格数据# 房屋面积(平方米)house_sizes=np.array([50,60,70,80,90,100,110,120]).reshape(-1,1)# 房屋价格(万元)house_prices=np.array([150,180,210,240,270,300,330,360])# 2. 创建并训练模型# 创建线性回归模型model=LinearRegression()# 用数据训练模型(学习面积和价格之间的关系)model.fit(house_sizes,house_prices)# 3. 使用模型进行预测# 预测 85 平方米的房屋价格predicted_price=model.predict([[85]])print(f"85 平方米的房屋预测价格:{predicted_price[0]:.2f} 万元")# 4. 可视化结果plt.scatter(house_sizes,house_prices,color='blue',label='实际数据')plt.plot(house_sizes,model.predict(house_sizes),color='red',label='预测线')plt.scatter([85],predicted_price,color='green',s=100,label='预测点')plt.xlabel('房屋面积(平方米)')plt.ylabel('房屋价格(万元)')plt.title('RUNOOB 机器学习测试 -- 房屋面积与价格关系')plt.legend()plt.grid(True)plt.show()
运行结果:
85 平方米的房屋预测价格:255.00 万元
这个例子展示了机器学习的基本流程:
- 准备数据(房屋面积和价格)
- 选择算法(线性回归)
- 训练模型(让计算机学习面积和价格的关系)
- 使用模型预测(预测新面积的价格)
输出的图如下: