import numpy as np
from sklearn.linear_model import LinearRegression
# Sample data (replace with your actual data)
data = np.array ( [ 2.09 , 3.60 , 1.16 , 1.54 , 1.00 , 37.01 , 5.09 , 10.62 , 2.41 , 1.46 , 1.07 , 3.08 ] )
# Number of future predictions you want to make
num_predictions = 5
# Function to predict the next number and add it to the array
def predict_and_add( data, model, num_predictions) :
for _ in range ( num_predictions) :
X = np.arange ( len ( data) ) .reshape ( -1 , 1 )
y = data
# Train the model
model.fit ( X, y)
# Predict the next number
next_index = len ( data)
next_value = model.predict ( [ [ next_index] ] )
# Add the predicted number to the array
data = np.append ( data, next_value)
# Print the predicted number with two decimal places
print ( f"The predicted next number is: {next_value[0]:.2f}" )
return data
# Create the linear regression model
model = LinearRegression( )
# Predict and add the future numbers
updated_data = predict_and_add( data, model, num_predictions)
print ( "Updated data array:" , updated_data)
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gc2tsZWFybi5saW5lYXJfbW9kZWwgaW1wb3J0IExpbmVhclJlZ3Jlc3Npb24KCiMgU2FtcGxlIGRhdGEgKHJlcGxhY2Ugd2l0aCB5b3VyIGFjdHVhbCBkYXRhKQpkYXRhID0gbnAuYXJyYXkoWzIuMDksIDMuNjAsIDEuMTYsIDEuNTQsMS4wMCwgMzcuMDEsIDUuMDksIDEwLjYyLCAyLjQxLCAxLjQ2LCAxLjA3LCAzLjA4XSkKCiMgTnVtYmVyIG9mIGZ1dHVyZSBwcmVkaWN0aW9ucyB5b3Ugd2FudCB0byBtYWtlCm51bV9wcmVkaWN0aW9ucyA9IDUKCiMgRnVuY3Rpb24gdG8gcHJlZGljdCB0aGUgbmV4dCBudW1iZXIgYW5kIGFkZCBpdCB0byB0aGUgYXJyYXkKZGVmIHByZWRpY3RfYW5kX2FkZChkYXRhLCBtb2RlbCwgbnVtX3ByZWRpY3Rpb25zKToKICAgIGZvciBfIGluIHJhbmdlKG51bV9wcmVkaWN0aW9ucyk6CiAgICAgICAgWCA9IG5wLmFyYW5nZShsZW4oZGF0YSkpLnJlc2hhcGUoLTEsIDEpCiAgICAgICAgeSA9IGRhdGEKCiAgICAgICAgIyBUcmFpbiB0aGUgbW9kZWwKICAgICAgICBtb2RlbC5maXQoWCwgeSkKCiAgICAgICAgIyBQcmVkaWN0IHRoZSBuZXh0IG51bWJlcgogICAgICAgIG5leHRfaW5kZXggPSBsZW4oZGF0YSkKICAgICAgICBuZXh0X3ZhbHVlID0gbW9kZWwucHJlZGljdChbW25leHRfaW5kZXhdXSkKICAgICAgICAKICAgICAgICAjIEFkZCB0aGUgcHJlZGljdGVkIG51bWJlciB0byB0aGUgYXJyYXkKICAgICAgICBkYXRhID0gbnAuYXBwZW5kKGRhdGEsIG5leHRfdmFsdWUpCgogICAgICAgICMgUHJpbnQgdGhlIHByZWRpY3RlZCBudW1iZXIgd2l0aCB0d28gZGVjaW1hbCBwbGFjZXMKICAgICAgICBwcmludChmIlRoZSBwcmVkaWN0ZWQgbmV4dCBudW1iZXIgaXM6IHtuZXh0X3ZhbHVlWzBdOi4yZn0iKQogICAgCiAgICByZXR1cm4gZGF0YQoKIyBDcmVhdGUgdGhlIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsCm1vZGVsID0gTGluZWFyUmVncmVzc2lvbigpCgojIFByZWRpY3QgYW5kIGFkZCB0aGUgZnV0dXJlIG51bWJlcnMKdXBkYXRlZF9kYXRhID0gcHJlZGljdF9hbmRfYWRkKGRhdGEsIG1vZGVsLCBudW1fcHJlZGljdGlvbnMpCgpwcmludCgiVXBkYXRlZCBkYXRhIGFycmF5OiIsIHVwZGF0ZWRfZGF0YSk=