用Python探索人工智能:从线性回归到神经网络入门

前言(AI)正在改变世界,从推荐系统到自动驾驶,其应用无处不在。Python凭借丰富的库(如scikit-learnTensorFlow)成为AI开发的首选语言。本文将带你从简单的线性回归入手,逐步过渡到神经网络,揭开AI的神秘面纱。无论你是AI新手还是想入门深度学习,这篇教程都能帮你迈出第一步。欢迎在评论区分享你的AI学习心得!
一、AI基础与工具
1.1 什么是人工智能?

AI是让机器模拟人类智能的技术,包括:

  • (ML):从数据中学习规律。
  • 深度学习(DL):基于神经网络的高级ML。
1.2 环境准备

安装核心库:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

pip install numpy pandas scikit-learn tensorflow

二、线性回归:AI的第一步
2.1 问题设定

假设我们要预测房价,基于面积(平方米): 数据:面积 [50, 70, 100],房价 [150, 200, 300](万元)。

2.2 实现线性回归

使用scikit-learn训练模型:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# 数据
X = np.array([[50], [70], [100]])  # 面积
y = np.array([150, 200, 300])      # 房价

# 训练模型
model = LinearRegression()
model.fit(X, y)

# 预测
X_test = np.array([[60], [80]])
y_pred = model.predict(X_test)
print(f"预测房价:{y_pred}")

# 可视化
plt.scatter(X, y, color="blue", label="真实数据")
plt.plot(X_test, y_pred, color="red", label="预测线")
plt.xlabel("面积 (平方米)")
plt.ylabel("房价 (万元)")
plt.legend()
plt.show()

输出

代码语言:javascript

代码运行次数:0

运行

AI代码解释

预测房价:[175. 225.]

解析: 模型学习到房价与面积的线性关系:y = mx + b。 可视化显示预测线的拟合效果。


三、神经网络:AI的核心
3.1 神经网络简介

神经网络模仿人脑神经元,通过多层节点处理复杂数据。

3.2 用TensorFlow构建神经网络

以手写数字识别(MNIST数据集)为例:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

import tensorflow as tf
from tensorflow.keras import layers, models

# 加载MNIST数据集
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0  # 归一化

# 构建模型
model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),       # 展平28x28图像
    layers.Dense(128, activation="relu"),       # 隐藏层
    layers.Dense(10, activation="softmax")      # 输出层(10个数字)
])

# 编译模型
model.compile(optimizer="adam",
              loss="sparse_categorical_crossentropy",
              metrics=["accuracy"])

# 训练
model.fit(X_train, y_train, epochs=5, batch_size=32)

# 评估
test_loss, test_acc = model.evaluate(X_test, y_test)
print(f"测试准确率: {test_acc:.4f}")

输出示例

代码语言:javascript

代码运行次数:0

运行

AI代码解释

测试准确率: 0.9750

解析

  • Flatten将图像转为1D向量。
  • Dense层模拟神经元,relusoftmax处理非线性关系和分类概率。
  • 5次迭代后,模型在测试集上达到97%+的准确率。

四、进阶优化
4.1 数据预处理
  • 特征缩放:用StandardScaler标准化数据,提升模型性能。
  • 数据增强:用ImageDataGenerator生成更多训练样本。

示例

代码语言:javascript

代码运行次数:0

运行

AI代码解释

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
4.2 可视化训练过程

matplotlib绘制准确率曲线:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

history = model.fit(X_train, y_train, epochs=5, validation_split=0.2)
plt.plot(history.history["accuracy"], label="训练准确率")
plt.plot(history.history["val_accuracy"], label="验证准确率")
plt.xlabel("Epoch")
plt.ylabel("Accuracy")
plt.legend()
plt.show()
4.3 模型部署

将模型保存并用于预测:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

model.save("mnist_model.h5")
loaded_model = tf.keras.models.load_model("mnist_model.h5")
prediction = loaded_model.predict(X_test[:1])
print(f"预测结果: {np.argmax(prediction)}")

五、注意事项
  • 数据质量:AI效果依赖于干净、充足的数据。
  • 过拟合:通过Dropout或正则化避免模型过于贴合训练数据。
  • 计算资源:深度学习需持,建议使用Google Colab免费资源。

六、总结

从线性回归到神经网络,本文展示了Python在AI开发中的强大能力。scikit-learn适合简单机器学习,TensorFlow则是深度学习的利器。下一步,你可以尝试更复杂的模型(如CNN、RNN),或将AI应用到自己的项目中。

互动环节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值