机器学习模型案例
运行代码:
import pandas as pd # 导入pandas库,用于数据处理和分析,并用pd作为别名
data = pd.read_csv('house_price.csv')# 使用pandas的read_csv函数读取名为'house_price.csv'的CSV文件#,并将数据存储在变量data中(data是一个DataFrame对象)
print("数据集中的前10条记录:")# 打印提示信息:数据集中的前10条记录
print(data.head(10))# 使用DataFrame的head(10)方法获取前10条数据,并打印输出
print("")# 打印一个空行,用于分隔输出内容,使结果更易读
# 数据进行可视化
from matplotlib import pyplot as plt# 从matplotlib库的pyplot模块导入绘图功能,并用plt作为别名
fig = plt.figure(figsize=(20,5))# 创建一个图形对象fig,设置画布大小为20x5(宽x高,单位为英寸)
fig1 = plt.subplot(131)# 在图形对象中创建第一个子图(1行3列中的第1个),并赋值给fig1
plt.scatter(data.loc[:,'面积'],data.loc[:,'价格'])# 绘制散点图:x轴为数据中的'面积'列,y轴为'价格'列
plt.title('Price VS Size')# 给第一个子图设置标题为'Price VS Size'(价格与面积的关系)
fig2 = plt.subplot(132)# 创建第二个子图(1行3列中的第2个),赋值给fig2
plt.scatter(data.loc[:,'人均收入'],data.loc[:,'价格'])# 绘制散点图:x轴为数据中的'人均收入'列,y轴为'价格'列
plt.title('Price VS Income')# 给第二个子图设置标题为'Price VS Income'(价格与人均收入的关系)
fig3 = plt.subplot(133)# 创建第三个子图(1行3列中的第3个),赋值给fig3
plt.scatter(data.loc[:,'平均房龄'],data.loc[:,'价格'])# 绘制散点图:x轴为数据中的'平均房龄'列,y轴为'价格'列
plt.title('Price VS House_age')# 给第三个子图设置标题为'Price VS House_age'(价格与平均房龄的关系)
plt.show()# 显示绘制的所有图形
#数据预处理
import numpy as np# 导入numpy库,用于数值计算,并用np作为别名
X = data.drop(['价格'],axis=1)# 从原始数据中删除'价格'列,得到特征数据X(用于预测的变量)
y = data.loc[:,'价格']# 从原始数据中提取'价格'列,作为目标变量y(需要预测的结果)
X = np.array(X)# 将特征数据X转换为numpy数组格式(sklearn模型通常要求数组输入)
y = np.array(y)# 将目标变量y转换为numpy数组格式
print(X.shape,y.shape)# 打印特征数据X和目标变量y的形状(维度),查看数据结构
y = y.reshape(-1,1)# 将y的形状重塑为二维数组(sklearn的线性回归模型要求目标变量为二维数组),reshape(-1,1)表示行数自动计算,列数为1
print(X.shape,y.shape)# 再次打印形状,确认重塑后的结果
#建立多因子回归模型 并且训练
from sklearn.linear_model import LinearRegression# 从sklearn的linear_model模块导入LinearRegression类,用于构建线性回归模型
model_multi = LinearRegression()# 创建一个多元线性回归模型的实例,赋值给model_multi
model_multi.fit(X,y)# 使用特征数据X和目标变量y训练模型(拟合数据)
#房价预测
X_test = np.array([[150,60000,5]])# 定义测试数据X_test:一个包含[面积=150,人均收入=60000,平均房龄=5]的样本
y_test_predict = model_multi.predict(X_test)# 使用训练好的模型预测测试数据的房价,并将结果存储在y_test_predict中
print(y_test_predict)# 打印预测的房价结果

更多推荐
所有评论(0)