scatter函数的使用及图片中中文不显示问题

    科技2024-11-23  20

    from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_squared_error from sklearn.externals import joblib import matplotlib.pyplot as plt def mylinearregression(): """ 线性回归两种求解方式去进行房价预测 :return: """ # 获取数据进行分割 lb = load_boston() x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.3) # 对数据进行标准化处理 std = StandardScaler() x_train = std.fit_transform(x_train) x_test = std.fit_transform(x_test) # 使用线性回归的模型进行训练,以及预测 # 正规方程求解方式LinearRegression # lr = LinearRegression(fit_intercept=True) # # fit之后已经得出参数结果 # lr.fit(x_train, y_train) # # 保存模型 # joblib.dump(lr, "./mylinearegression2.pkl") # 直接加载模型去进行预测 lr_model = joblib.load("./mylinearegression2.pkl") # print("预测未知的测试集结果:", lr_model.predict(x_test)) # print("正规方程计算出的权重:", lr.coef_) # print("正规方程计算出的偏置:", lr.intercept_) y_lr_predict = lr_model.predict(x_test) # 调用 predict去预测目标值 print("测试集预测的价格为:", y_lr_predict[:100]) # 调用均方误差去评估LinearRegression的结果误差怎么样 error = mean_squared_error(y_test, y_lr_predict) # LinearRegression的结果误差为: 32.73198712237436 ,平均每个样本的误差为:根号(32) print("LinearRegression的结果误差为:", error) # 画散点图 plt.scatter(y_test[:100], y_lr_predict[:100], c=['r', 'b'], marker='+', alpha=0.4, label=r'类别A') plt.legend() plt.savefig(r'./12345svm.png', dpi=300) plt.show() return None if __name__ == '__main__': mylinearregression()

    如果产生的图片产生中文乱码,原因就是字体的默认设置中并没有中文字体,所以我们只要手动添加中文字体的名称就可以了

    手动增加如下代码

    from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei']
    Processed: 0.010, SQL: 8