Python人工智能实战:机器学习实践案例
机器学习是人工智能领域的一个子领域,它为计算机提供了学习的能力,从而让计算机能够根据已有的数据,自动推出规律并用于未来的预测和决策。Python是机器学习领域中最受欢迎的编程语言之一,因为Python的语法简洁、易于阅读和学习,同时还有很多强大的机器学习库,如scikit-learn、TensorFlow和Keras等。本文将介绍一个Python人工智能实战案例,展示机器学习如何应用于实际问题。
案例:房价预测
本案例旨在构建一个机器学习模型,根据几项因素来预测房屋的价格。我们将使用一个名为“波士顿房价数据集”的公共数据集来训练和测试我们的模型。该数据集包括506个房屋,每个房屋有13个特征,如犯罪率、房间数、年龄、地段等,以及每个房屋的中位房价。
1. 数据预处理
我们首先需要加载数据集,并对其进行一些预处理。在这个案例中,我们将采用pandas库来加载数据集并进行数据清洗。
```
import pandas as pd
# 加载数据集
df = pd.read_csv('housing.csv')
```
我们可以使用`head()`方法查看前几行数据:
```
df.head()
```
输出结果如下:
```
CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT MEDV
0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296 15.3 396.90 4.98 24.0
1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242 17.8 396.90 9.14 21.6
2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242 17.8 392.83 4.03 34.7
3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222 18.7 394.63 2.94 33.4
4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222 18.7 396.90 5.33 36.2
```
接下来,我们将从数据集中分离出特征和标签列。
```
# 分离特征和标签
features = df.drop('MEDV', axis=1)
labels = df['MEDV']
```
2. 特征缩放
由于数据集中的特征值具有不同的范围和单位,我们需要对它们进行特征缩放。在这个案例中,我们将使用MinMaxScaler对特征进行缩放。
```
from sklearn.preprocessing import MinMaxScaler
# 进行特征缩放
scaler = MinMaxScaler()
features = scaler.fit_transform(features)
```
3. 分割数据
我们的数据现在已经准备好了,我们需要将其分成训练集和测试集。在这个案例中,我们将采用80%的数据用于训练,20%的数据用于测试。
```
from sklearn.model_selection import train_test_split
# 分割数据
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42)
```
4. 训练模型
我们将使用scikit-learn库中的LinearRegression模型来训练我们的模型。
```
from sklearn.linear_model import LinearRegression
# 训练模型
lr = LinearRegression()
lr.fit(X_train, y_train)
```
5. 评估模型
我们训练好了模型,现在需要对其进行评估。我们可以使用scikit-learn库中的mean_squared_error和r2_score来评估模型的性能。
```
from sklearn.metrics import mean_squared_error, r2_score
# 在测试集上进行预测
y_pred = lr.predict(X_test)
# 评估模型性能
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('均方误差(MSE):', mse)
print('R平方指数(R^2):', r2)
```
输出结果如下:
```
均方误差(MSE): 24.29111947497371
R平方指数(R^2): 0.6684830473463695
```
6. 预测房屋价格
我们的模型已经训练好了,现在可以用它来预测新房屋的价格。
```
# 预测房屋价格
new_house = [[0.00632, 18.0, 2.31, 0.0, 0.538, 6.575, 65.2, 4.0900, 1.0, 296, 15.3, 396.90, 4.98]]
new_house = scaler.transform(new_house)
pred_price = lr.predict(new_house)
print('预测房价:', pred_price)
```
输出结果如下:
```
预测房价: [28.88394048]
```
结论
通过上述分析,我们可以看出,使用机器学习来预测房价是可行的。我们使用了Python编写了一个简单的机器学习模型,它可以根据输入的特征预测房屋的价格。在这个案例中,我们使用了scikit-learn库和LinearRegression模型来实现我们的目标。
当然,机器学习不仅仅局限于房价预测这个领域,从图像识别到自然语言处理,都可以运用机器学习技术来实现。希望本文能够为初学者提供一些指导,让大家更好地掌握Python人工智能实战技术。