# Apply One Hot Encoder to Column[3] & Remove Dummy Variable Trap X = pp.onehot_encoder(X, columns=[3]) X = pp.remove_columns(X, [3]) #X = pp.onehot_encoder(X, columns=[3], remove_trap=True) # Split Training vs. Testing Set X_train, X_test, Y_train, Y_test = pp.split_train_test(X, Y, train_size=0.8) # Feature Scaling (optional) #X_train, X_test = pp.feature_scaling(fit_ary=X_train, transform_arys=(X_train, X_test)) #Y_train, Y_test = pp.feature_scaling(fit_ary=Y_train, transform_arys=(Y_train, Y_test)) # In[] Create Linear Regressor from HappyML.regression import SimpleRegressor simple_reg = SimpleRegressor() Y_pred_simple = simple_reg.fit(X_train, Y_train).predict(X_test) # R-Squared always increase in multiple linear regression --> Use Adjusted R-Squared instead print("Goodness of Model (R-Squared Score):", simple_reg.r_score(X_test, Y_test)) # In[] Multiple Linear Regression ## Add one column X0 for constant C0 #import statsmodels.tools.tools as smtools #X_train = smtools.add_constant(X_train) # ## Try-and-Error of Selecting Features with Backward Elimination #import statsmodels.api as sm #
X, Y = pp.decomposition(dataset, [0, 1, 2, 3], [4]) # X = pp.onehot_encoder(X, columns=[3]) # X = pp.remove_columns(X, [3]) X = pp.onehot_encoder(X, columns=[3], remove_trap=True) X_train, X_test, Y_train, Y_test = pp.split_train_test(X, Y, train_size=0.8) X_train, X_test= pp.feature_scaling(fit_ary=X_train, transform_arys=(X_train, X_test)) Y_train, Y_test= pp.feature_scaling(fit_ary=Y_train, transform_arys=(Y_train, Y_test)) # In[] from HappyML.regression import SimpleRegressor simple_reg = SimpleRegressor() Y_pred_simple = simple_reg.fit(X_train, Y_train).predict(X_test) # R-Squared always increase in multiple linear regression --> Use Adjusted R-Squared instead print("Goodness of Model (R-Squared Score):", simple_reg.r_score(X_test, Y_test)) # In[] from HappyML.regression import MultipleRegressor X_train = pp.add_constant(X_train) X_test = pp.add_constant(X_test) regressor = MultipleRegressor() selected_features = regressor.backward_elimination(x_train=X_train, y_train=Y_train) Y_predict = regressor.fit(x_train=X_train.iloc[:, selected_features], y_train=Y_train).predict(x_test=X_test.iloc[:, selected_features])
X, Y = pp.decomposition(dataset, x_columns=[1], y_columns=[2]) # Training / Testing Set X_train, X_test, Y_train, Y_test = pp.split_train_test(x_ary=X, y_ary=Y, train_size=0.8) # Feature Scaling #X = pp.feature_scaling(fit_ary=X, transform_arys=(X)) #Y = pp.feature_scaling(fit_ary=Y, transform_arys=(Y)) # In[] Linear Regression as comparison from HappyML.regression import SimpleRegressor import HappyML.model_drawer as md reg_simple = SimpleRegressor() Y_simple = reg_simple.fit(x_train=X, y_train=Y).predict(x_test=X) md.sample_model(sample_data=(X, Y), model_data=(X, Y_simple)) print("R-Squared of Simple Regression:", reg_simple.r_score(x_test=X, y_test=Y)) # In[] Polynomial Regression #from sklearn.preprocessing import PolynomialFeatures #from HappyML.performance import rmse #import pandas as pd # #deg=5 #poly_reg = PolynomialFeatures(degree=deg) #X_poly = pd.DataFrame(poly_reg.fit_transform(X)) #
from HappyML import preprocessor as pp from HappyML.regression import SimpleRegressor import pandas as pd from HappyML import model_drawer as md dataset_h = pp.dataset("Student_Height.csv") dataset_w = pp.dataset("Student_Weight.csv") X_h, Y_h = pp.decomposition(dataset_h, [1], [3, 4]) X_w, Y_w = pp.decomposition(dataset_w, [1], [3, 4]) X_h_train, X_h_test, Y_h_train, Y_h_test = pp.split_train_test(X_h, Y_h) X_w_train, X_w_test, Y_w_train, Y_w_test = pp.split_train_test(X_w, Y_w) regressor = [[SimpleRegressor(), SimpleRegressor()], [SimpleRegressor(), SimpleRegressor()]] regressor[0][0].fit(X_h_train, Y_h_train.iloc[:, 0].to_frame()) regressor[0][1].fit(X_h_train, Y_h_train.iloc[:, 1].to_frame()) regressor[1][0].fit(X_w_train, Y_w_train.iloc[:, 0].to_frame()) regressor[1][1].fit(X_w_train, Y_w_train.iloc[:, 1].to_frame()) print("台灣 6~15 歲學童身高、體重評估系統\n") gender = eval(input("請輸入您的性別(1.男 2.女):")) - 1 age = eval(input("請輸入您的年齡(6-15):")) height = eval(input("請輸入您的身高(cm):")) weight = eval(input("請輸入您的體重(kg):")) h_avg = regressor[0][gender].predict(x_test=pd.DataFrame([[age]])).iloc[0, 0] w_avg = regressor[1][gender].predict(x_test=pd.DataFrame([[age]])).iloc[0, 0]
transform_arys=(X_train, X_test)) Y_train, Y_test = pp.feature_scaling(fit_ary=Y_train, transform_arys=(Y_train, Y_test)) # In[] Fitting Simple Regressor # from sklearn.linear_model import LinearRegression # regressor = LinearRegression() # regressor.fit(X_train, Y_train) # Y_pred = regressor.predict(X_test) # R_Score = regressor.score(X_test, Y_test) from HappyML.regression import SimpleRegressor regressor = SimpleRegressor() Y_pred = regressor.fit(X_train, Y_train).predict(X_test) print("R-Squared Score:", regressor.r_score(X_test, Y_test)) # In[] Visualize the Training Set #import matplotlib.pyplot as plt # #plt.scatter(X_train, Y_train, color="red") #plt.plot(X_train, regressor.predict(X_train), color="blue") #plt.title("Salary vs. Experience") #plt.xlabel("Experience") #plt.ylabel("Salary") #plt.show() from HappyML import model_drawer as md
""" # In[] import HappyML.preprocessor as pp dataset = pp.dataset("C:/Users/henry/Desktop/Python Training/Python機器學習/範例原始碼&「快樂版」函式庫/Ch05 Regression/Position_Salaries.csv") X, Y = pp.decomposition(dataset, x_columns=[1], y_columns=[2]) X_train, X_test, Y_train, Y_test = pp.split_train_test(x_ary=X, y_ary=Y, train_size=0.8) # In[] from HappyML.regression import SimpleRegressor import HappyML.model_drawer as md reg_simple = SimpleRegressor() Y_simple = reg_simple.fit(x_train=X, y_train=Y).predict(X) md.sample_model(sample_data=(X, Y), model_data=(X, Y_simple)) print("R-Squared of Simple Regression:", reg_simple.r_score(x_test=X, y_test=Y)) # In[] from sklearn.preprocessing import PolynomialFeatures deg = 12 poly_reg = PolynomialFeatures(degree=deg) X_poly = poly_reg.fit_transform(X) # In[] import pandas as pd regressor = SimpleRegressor()