毫升 | Python中的 sklearn.linear_model.LinearRegression()
这是来自 sklearn.linear_module 的普通最小二乘线性回归。
句法 :
sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1):
参数 :
fit_intercept : [boolean, Default is True] Whether to calculate intercept for the model.
normalize : [boolean, Default is False] Normalisation before regression.
copy_X : [boolean, Default is True] If true, make a copy of X else overwritten.
n_jobs : [int, Default is 1] If -1 all CPU’s are used. This will speedup the working for large datasets to process.
在给定的数据集中,给出了 50 家公司的研发支出、管理成本和营销支出以及获得的利润。目标是准备 ML 模型,该模型可以在给定 R&D Spend、Administration Cost 和 Marketing Spend 的价值的情况下预测公司的利润值。
要下载数据集,请单击此处。
代码:使用线性回归预测公司利润
# Importing the libraries
import numpy as np
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('https://media.geeksforgeeks.org/wp-content/uploads/50_Startups.csv')
print ("Dataset.head() \n ", dataset.head())
# Input values
x = dataset.iloc[:, :-1].values
print("\nFirst 10 Input Values : \n", x[0:10, :])
print ("Dataset Info : \n")
print (dataset.info())
# Input values
x = dataset.iloc[:, :-1].values
print("\nFirst 10 Input Values : \n", x[0:10, :])
# Output values
y = dataset.iloc[:, 3].values
y1 = y
y1 = y1.reshape(-1, 1)
print("\n\nFirst 10 Output true value : \n", y1[0:10, :])
# Dividing input and output data to train and test data
# Training : Testing = 80 : 20
from sklearn.cross_validation import train_test_split
xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size = 0.2,
random_state = 0)
# Feature Scaling
# Multilinear regression takes care of Feature Scaling
# So we need not do it manually
# Fitting Multi Linear regression model to training model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(xtrain, ytrain)
# predicting the test set results
y_pred = regressor.predict(xtest)
y_pred1 = y_pred
y_pred1 = y_pred1.reshape(-1,1)
print("\n RESULT OF LINEAR REGRESSION PREDICTION : ")
print ("\nFirst 10 Predicted value : \n", y_pred1[0:10, :])