> For the complete documentation index, see [llms.txt](https://tusharkolekar24.gitbook.io/package-kolekar-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tusharkolekar24.gitbook.io/package-kolekar-1/case-study/averaging-technique.md).

# Averaging Technique

### Import Required Libraries

```python
import pandas as pd
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import Average_weight_Ensemble
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import RandomForestRegressor
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import LinearRegression
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import ExtraTreesRegressor,
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import DecisionTreeRegressor
from package_Kolekar.Ensemble_Learning.Avg_Ensemble import np
```

### Import Dataset (case1 from NASA Milling Dataset)

```python
 df = pd.read_csv('https://raw.githubusercontent.com/tusharkolekar24/package_Kolekar/main/time_domain_case1.csv')
 print("Shape of the Dataset:", df.shape)
 df.head()
```

![](/files/iBfnHlEXqJJtfnqT4iIw)

### Model Building Process

```
model = Average_weight_Ensemble()
```

### Data Preparation Process

```python
X, y = model.data_preparation(df)
print("Shape of X:",X.shape)
print("Shape of y:",y.shape)
```

<div align="left"><img src="/files/swjseOmX1wbUuFlyWExO" alt=""></div>

### Data Normalization

```python
X_scaled,y_scaled = model.data_normalization(df)
print("Shape of X_scaled:",X_scaled.shape)
print("Shape of y_scaled:",y_scaled.shape)
```

<div align="left"><img src="/files/swjseOmX1wbUuFlyWExO" alt=""></div>

### Train Test Splitting

```python
X_train,X_test,y_train,y_test = model.data_split_train_test(X_scaled,y_scaled)
print("Shape of X_train:",X_train.shape)
print("Shape of X_test :",X_test.shape)
print("Shape of y_train:",y_train.shape)
print("Shape of y_test :",y_test.shape)
```

<div align="left"><img src="/files/nsPxtNZaM6KVigVshqxA" alt=""></div>

### Base Model defining

```python
base_models =[('rfr',RandomForestRegressor()),
              ('etr',ExtraTreesRegressor()),
              ('dt',DecisionTreeRegressor()),
              ('lr',LinearRegression())]
```

### &#x20;Model training & performing Predictions

```python
y_train_pred = model.get_Averaging_technique(base_model=base_models,
                              train_X=X_train,
                              train_y=y_train,
                              test_X=X_train)

y_test_pred = model.get_Averaging_technique(base_model=base_models,
                              train_X=X_train,
                              train_y=y_train,
                              test_X=X_test)
```

### Model Performance Evaluation

```python
result_train = model.performance_evaluation(y_train,y_train_pred)
#print("MAE for train set       :",result_train[0])
#print("MSE for train set       :",result_train[1])
#print("RMSE for train set      :",result_train[2])
#print("MAPE for train set      :",result_train[3])
#print("R^2 score for train set :",result_train[4])

result_test = model.performance_evaluation(y_test,y_test_pred)
a = pd.DataFrame([["Avg_Ensemble",result_train[0],result_train[1],result_train[2],result_train[3],result_train[4],"Training"]],
                  columns=['Method','MAE','MSE','RMSE','MAPE','R2_score','Dataset'])
                  
b = pd.DataFrame([["Avg_Ensemble",result_test[0],result_test[1],result_test[2],result_test[3],result_test[4],"Testing"]],
                  columns=['Method','MAE','MSE','RMSE','MAPE','R2_score','Dataset'])                  
                  
a = a.append(b)                  
a                  
```

<div align="left"><img src="/files/t6278y8MQg0TSoBWoJQU" alt=""></div>

### Data Reconstruction

```python
original_wear = model.scaled1.inverse_transform(np.array(y_test).reshape(-1,1))
pred_wear     = model.scaled1.inverse_transform(np.array(y_test_pred).reshape(-1,1))
myplot = pd.DataFrame({"original":original_wear.reshape(-1),'pred':pred_wear.reshape(-1)}).sort_values('original',ascending=True)
myplot.head()
```

### Graphical Representation of the Predicted output

```python
import matplotlib.pyplot as plt
plt.figure(figsize=(10,5))
plt.plot(np.arange(0,myplot.shape[0]),myplot.original,label='Actual Wear')
plt.plot(np.arange(0,myplot.shape[0]),myplot.pred,label='Pred Wear')
plt.xlim(0,myplot.shape[0]-1)
plt.grid()
plt.legend()
plt.title("Averaging Method with Testing Accuracy: {}%".format(90.5685))
plt.ylabel("Tool wear")
plt.xlabel("Data-Points")
plt.show()
```

<div align="left"><img src="/files/0tmNjJuuZB9Mz4Z1ZANx" alt=""></div>
