根据以下代码所生成的数据 请使用python 机器学习 研究不同宽度,厚度,重量,车间温度,退火类型(O态,H2态),冷却类型(自然冷却,单面风机,双面风机)下, 物料温度随时间增长而指数衰减的规律
  X5zJxoD00Cah 2023年11月02日 26 0

根据以下代码所生成的数据 请使用python 机器学习 研究不同宽度,厚度,重量,车间温度,退火类型(O态,H2态),冷却类型(自然冷却,单面风机,双面风机)下, 物料温度随时间增长而指数衰减的规律

# 导入所需的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 指定支持中文的字体,例如SimHei或者Microsoft YaHei
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 读取数据
data = pd.read_csv('data.csv')

# 查看数据的基本信息
print(data.info())
print(data.describe())

# 查看数据的分布情况
sns.pairplot(data, hue='Cooling_Type')
plt.show()

# 查看温度与时间的关系
sns.lineplot(x='Measurement_Time', y='Temperature', data=data, hue='Cooling_Type', style='Annealing_Type')
plt.show()

# 对温度取对数,使其更接近线性关系
data['Log_Temperature'] = np.log(data['Temperature'])

# 选择特征变量和目标变量
X = data[['Width', 'Thickness', 'Weight', 'Workshop_Temperature', 'Measurement_Time']]
y = data['Log_Temperature']

# 对类别变量进行独热编码
X = pd.get_dummies(X, columns=['Workshop_Temperature'], prefix='WT')
X = pd.get_dummies(X, columns=['Measurement_Time'], prefix='MT')

# 创建一个线性回归模型
model = LinearRegression()

# 拟合数据
model.fit(X, y)

# 预测数据
y_pred = model.predict(X)

# 计算评估指标
mse = mean_squared_error(y, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y, y_pred)

# 打印评估指标
print('MSE:', mse)
print('RMSE:', rmse)
print('R2:', r2)

# 打印回归系数和截距
print('Coefficients:', model.coef_)
print('Intercept:', model.intercept_)

# 绘制预测值和真实值的散点图
plt.scatter(y, y_pred)
plt.xlabel('True Values')
plt.ylabel('Predictions')
plt.show()
import numpy as np
import pandas as pd

# 定义物料数量
num_materials = 40

# 定义每个物料的温度测量次数和时间间隔
num_measurements = 10
time_interval_hours = 6

# 创建一个时间数组,模拟测量时间点
measurement_times = np.arange(0, num_measurements * time_interval_hours, time_interval_hours)

# 创建一个空的DataFrame来存储数据
data = pd.DataFrame(columns=['Material_ID', 'Measurement_Time', 'Width', 'Thickness', 'Weight', 'Workshop_Temperature',
                             'Annealing_Type', 'Cooling_Type', 'Temperature'])

# 模拟每个物料的数据
for material_id in range(1, num_materials + 1):
    # 生成物料特征数据(宽度、厚度、重量、车间温度、退火类型、冷却类型)
    width = np.random.uniform(5, 20)  # 宽度范围在5到20之间
    thickness = np.random.uniform(1, 5)  # 厚度范围在1到5之间
    weight = np.random.uniform(10, 100)  # 重量范围在10到100之间
    workshop_temperature = np.random.uniform(20, 30)  # 车间温度范围在20到30之间
    annealing_type = np.random.choice(['O态', 'H2态'])  # 随机选择退火类型
    cooling_type = np.random.choice(['自然冷却', '单面风机', '双面风机'])  # 随机选择冷却类型
    
    # 模拟温度数据(指数衰减)
    initial_temperature = np.random.uniform(100, 200)  # 初始温度范围在100到200之间
    decay_rate = np.random.uniform(0.01, 0.1)  # 衰减速率范围在0.01到0.1之间
    temperature_data = initial_temperature * np.exp(-decay_rate * measurement_times)
    
    # 创建一个临时DataFrame来存储物料的数据
    material_data = pd.DataFrame({
        'Material_ID': [material_id] * num_measurements,
        'Measurement_Time': measurement_times,
        'Width': [width] * num_measurements,
        'Thickness': [thickness] * num_measurements,
        'Weight': [weight] * num_measurements,
        'Workshop_Temperature': [workshop_temperature] * num_measurements,
        'Annealing_Type': [annealing_type] * num_measurements,
        'Cooling_Type': [cooling_type] * num_measurements,
        'Temperature': temperature_data
    })
    
    # 将物料数据添加到总体数据中
    data = pd.concat([data, material_data], ignore_index=True)


data_1 = data.set_index(data.columns.drop(data.columns[[1, -1]]).tolist() + ['Measurement_Time'])

data.to_csv(r'data.csv', encoding="utf_8_sig")
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  gBkHYLY8jvYd   2023年12月09日   30   0   0 cii++数据
X5zJxoD00Cah