1数据预处理
python
复制代码
import pandas as pd
import glob
import os
# 读取所有CSV文件并合并为一个DataFrame
path = 'path_to_your_csv_files/' # CSV文件的文件夹路径
all_files = glob.glob(os.path.join(path, "*.csv"))
df_list = []
for file in all_files:
df = pd.read_csv(file)
df_list.append(df)
# 合并所有DataFrame
data = pd.concat(df_list, ignore_index=True)
# 将保存时间列转换为日期时间格式
data['保存时间'] = pd.to_datetime(data['保存时间'])
# 检查并处理缺失值(这里以删除含缺失值的行为例)
data = data.dropna()
# 检查数据类型是否正确
print(data.dtypes)
2数据探索性分析(EDA)
python
复制代码
#数据探索性分析
import plotly.io as pio
import plotly.graph_objs as go
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
# 设置字体为 SimHei (黑体),你也可以使用其他已安装的中文字体
plt.rcParams['font.family'] = ['SimHei']
# 解决负号 '-' 显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
print(data.describe())
#时间序列分析,展示主轴电机实时转速随时间变化
#选择需要分析的变量
variables_to_analyze = ['主轴电机实时转速','主轴电机实时电流','腔体压力','喂料电机实时转速','喂料电机实时电流','循环泵口压力','出料压力']
#创建一个Plotly图表图像
fig = go.Figure()
for variable in variables_to_analyze:
fig.add_trace(go.Scatter(x=data['保存时间'],y=data[variable],mode='lines',name=variable))
#设置标题和标签
fig.update_layout(title='设备参数在一个月内的曲线变化图',xaxis_title='时间',yaxis_title='参数值',hovermode='x unified')
pio.show(fig)
# plt.figure(figsize=(10,6))
# plt.plot(data['保存时间'],data['主轴电机实时转速'],label='主轴电机实时转速')
# plt.xlabel('时间')
# plt.ylabel('转速')
# plt.title('主轴电机转速随时间的变化')
# plt.legend()
# plt.show()
#相关性分析
corr_matrix = data.corr()
print(corr_matrix)
3数据可视化
python
复制代码
import seaborn as sns
# 热力图展示参数之间的相关性
plt.figure(figsize=(12, 10))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('参数相关性热力图')
plt.show()
# 散点图展示主轴电机实时转速与主轴电机实时电流的关系
plt.figure(figsize=(8, 6))
sns.scatterplot(x='主轴电机实时转速', y='主轴电机实时电流', data=data)
plt.xlabel('主轴电机实时转速')
plt.ylabel('主轴电机实时电流')
plt.title('主轴电机实时转速与主轴电机实时电流的关系')
plt.show()
4特征工程
python
复制代码
# 例如构造一个新的特征:转速与电流的比率
data['转速电流比'] = data['主轴电机实时转速'] / data['主轴电机实时电流']
# 选择重要特征,作为后续分析或建模的输入
features = ['主轴电机设定转速', '主轴电机实时转速', '主轴电机实时电流', '转速电流比', '腔体压力']
target = '出料压力'
X = data[features]
y = data[target]
5建模与预测
python
复制代码
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 模型预测
y_pred = model.predict(X_test)
# 模型评估
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
print(f'R^2 Score: {r2}')