import numpy as np from sklearn.linear_model import LinearRegression from math import floor import matplotlib.pyplot as plt #daten laden path = "C:/temp/cardata.csv" data = np.loadtxt(fname = path, delimiter = ',') rows, cols = data.shape allindices = np.asarray([x for x in range(rows)]) # training / evaluation training = np.random.choice(rows,floor(0.25*rows)) evaluation = np.setdiff1d(allindices,training) # trainingsdaten # data[training,:] def getSquaredError(xtrain,ytrain,xeval,yeval): reg = LinearRegression(fit_intercept=True).fit(xtrain, ytrain) ypred = reg.predict(xeval) # äquivalent zu a*x+b # von Hand # ypred2 = reg.coef_*xeval+reg.intercept_ # ypred und ypred2 sind identisch; a*x+b; a=reg.coef_, b=reg.intercept_ RSS = sum((ypred-yeval)**2) return (RSS/ypred.size) ## example print(getSquaredError(data[training,8:9],data[training,7:8],data[evaluation,8:9],data[evaluation,7:8])) results = [0]*cols for i in range(cols): if i==7: results[i] = float('inf') continue results[i] = float(getSquaredError(data[training,i:(i+1)],data[training,7:8],data[evaluation,i:(i+1)],data[evaluation,7:8])) # Vergleiche Resultate print(results) # Vergleiche Resultate as log print(np.log(results)) minval = results[0] minindex = 0 for i in range(1, len(results)): if(results[i] < minval): minindex = i minval = results[i] print(minval) print(minindex) #automaisch print(np.amin(np.array(results,dtype=object)))