import pandas as pd import warnings import sklearn.datasets import sklearn.linear_model import matplotlib import matplotlib.font_manager as fm import matplotlib.pyplot as plt import numpy as np import seaborn as sns data = pd.read_excel(r'C:\Users\Lenovo\Desktop\data.xlsx') print(data.info()) fig = plt.figure(figsize=(10, 8)) sns.heatmap(data.corr(), cmap="YlGnBu", annot=True) plt.title('相关性分析热力图') plt.rcParams['axes.unicode_minus'] = False plt.rcParams['font.sans-serif'] = 'SimHei' plt.show() y = data['y'] X = data.drop(['y'], axis=1) print('************************输出新的特征集数据***************************') print(X.head()) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) def relu(X): output=np.maximum(0, X) return output def relu_back_propagation(derror_wrt_output,X): derror_wrt_dinputs = np.array(derror_wrt_output, copy=True) derror_wrt_dinputs[x <= 0] = 0 return derror_wrt_dinputs def activated(activation_choose,X): if activation_choose == 'relu': return relu(X) def activated_back_propagation(activation_choose, derror_wrt_output, output): if activation_choose == 'relu': return relu_back_propagation(derror_wrt_output, output) class NeuralNetwork: def __init__(self, layers_strcuture, print_cost = False): self.layers_strcuture = layers_strcuture self.layers_num = len(layers_strcuture) self.param_layers_num = self.layers_num - 1 self.learning_rate = 0.0618 self.num_iterations = 2000 self.x = None self.y = None self.w = dict() self.b = dict() self.costs = [] self.print_cost = print_cost self.init_w_and_b()
时间: 2024-04-26 21:24:19 浏览: 13
这段代码实现了一个神经网络类 NeuralNetwork,用于训练数据并进行预测。首先,通过 Pandas 库读取一个 Excel 文件中的数据,并使用 Seaborn 库绘制数据的相关性分析热力图。然后,将数据集分为训练集和测试集,用于训练和评估模型。
接下来,定义了一个 relu() 函数和 relu_back_propagation() 函数,用于实现神经网络的激活函数和反向传播过程。其中,relu() 函数实现了 ReLU 激活函数,即将输入 X 中小于 0 的值置为 0,大于等于 0 的值保持不变;relu_back_propagation() 函数则实现了 ReLU 函数的反向传播过程,即计算误差关于输入的偏导数。
接着,定义了一个 NeuralNetwork 类,并实现了初始化方法 __init__()、初始化权重和偏置参数的方法 init_w_and_b(),以及训练模型的方法 train()。其中,__init__() 方法接受一个层次结构列表 layers_strcuture,用于指定神经网络的构成;init_w_and_b() 方法用于初始化神经网络的权重和偏置参数;train() 方法用于训练神经网络,并返回训练好的参数。
在 NeuralNetwork 类的 __init__() 方法中,首先初始化了神经网络的层数、学习率、迭代次数等参数。然后,定义了神经网络的权重参数和偏置参数,存储在类的实例变量 w 和 b 中。最后,定义了一个成本函数的列表 costs,存储训练过程中每次迭代的成本值。
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as plt
这三个库都是Python中常用的数据分析和可视化库。其中,NumPy是Python中用于科学计算的基础库,提供了高性能的多维数组和矩阵计算功能。Pandas是基于NumPy的一个数据处理库,提供了高效的数据结构和数据分析工具。Matplotlib是Python中最流行的数据可视化库之一,提供了各种绘图工具和图表类型,可以用于生成各种静态和动态的图表。
以下是一个简单的例子,展示如何使用这三个库绘制一个柱状图:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
bar_positions = [1, 2, 3, 4]
bar_heights = [1, 2, 3, 4]
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(np.arange(len(bar_positions)), bar_heights)
# 设置x轴标签
ax.set_xticks(np.arange(len(bar_positions)))
ax.set_xticklabels(bar_positions)
# 设置y轴标签
ax.set_ylabel('Bar Heights')
# 设置图表标题
ax.set_title('A Simple Bar Chart')
# 显示图表
plt.show()
```
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn import tree
以下是使用import语句导入pandas、numpy、matplotlib.pyplot、seaborn和sklearn.tree的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import tree
```
- pandas是一个数据处理库,用于读取、处理和分析数据。
- numpy是一个数学库,用于处理数组和矩阵等数学运算。
- matplotlib.pyplot是一个绘图库,用于绘制各种类型的图表。
- seaborn是一个基于matplotlib的数据可视化库,提供了更高级别的界面和更多的图表类型。
- sklearn.tree是scikit-learn库中的一个模块,用于实现决策树算法。