Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有分类特征的线性回归分析_Python_Regression_Linear Regression - Fatal编程技术网

Python 具有分类特征的线性回归分析

Python 具有分类特征的线性回归分析,python,regression,linear-regression,Python,Regression,Linear Regression,回归算法在以数字表示的数据上运行良好。如何对包含数字的数据进行回归并预测输出是非常清楚的。然而,我需要对包含分类特征的数据进行回归分析。我有一个csv文件,其中包含两列install id和page name都是对象类型。我需要给安装id作为输入和页面名称应该作为输出预测。下面是我的代码。请帮我做这件事 import pandas as pd data = pd.read_csv("/Users/kashifjilani/Downloads/csv/newjsoncontent.csv") X

回归算法在以数字表示的数据上运行良好。如何对包含数字的数据进行回归并预测输出是非常清楚的。然而,我需要对包含分类特征的数据进行回归分析。我有一个csv文件,其中包含两列install id和page name都是对象类型。我需要给安装id作为输入和页面名称应该作为输出预测。下面是我的代码。请帮我做这件事

import pandas as pd
data = pd.read_csv("/Users/kashifjilani/Downloads/csv/newjsoncontent.csv")
X = data["install-id"]
Y = data["endPoint"]
X = pd.get_dummies(data=X, drop_first=True)
from sklearn import linear_model
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = .20, random_state = 40)
regr = linear_model.LinearRegression()
regr.fit(X_train, Y_train)
predicted = regr.predict(X_test)

对于演示,假设您有一个数据框,其中,
IQ
Gender
是输入特性。目标变量是
测试分数

|学生|智商|性别|测试分数|
|----------:|-----:|:---------|-------------:|
|1 | 125 |男| 93|
|2 | 120 |女| 86|
|3 | 115 |男| 96|
|4 | 110 |女| 81|
|5 | 105 |男| 92|
|6 | 100 |女性| 75|
|7 | 95 |男| 84|
|8 | 90 |女性| 77|
|9 | 85 |男| 73|
|10 | 80 |女| 74|
这里,
IQ
是数字特征,
Gender
是分类特征。在预处理步骤中,我们将对数值特征应用简单的插补器,对分类特征应用一个热编码器。您可以使用sklearn的
管道
&
ColumnTransformer
功能来实现这一点。然后,您可以使用您选择的模型轻松地进行训练和预测

将熊猫作为pd导入
从sklearn.compose导入ColumnTransformer
从sklearn.model\u选择导入列车\u测试\u拆分
从sklearn.pipeline导入管道
从sklearn.preprocessing导入OneHotEncoder
从sklearn.impute导入SimpleImputer
从sklearn导入线性_模型
#定义数据
d={
“学生”:[1,2,3,4,5,6,7,8,9,10],
“智商”:[125、120、115、110、105、100、95、90、85、80、],
“性别”:[
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
],
“测试分数”:[93,86,96,81,92,75,84,77,73,74],
}
#转换为数据帧
df=pd.数据帧(d)
#将学生id设置为索引以跟踪
df=df.设置索引(“学生”)
#柱变换
分类列=[“性别”]
数字列=[“IQ”]
#确定X
X=df[分类列+数字列]
y=df[“测试分数”]
#列车试验分离
X_列车,X_试验,y_列车,y_试验=列车试验(
十、 y,随机状态=42,测试尺寸=0.3
)
#分类管道
分类管道=管道([(“onehot”,OneHotEncoder(handle_unknown=“ignore”)))
#数字管道
数字管道=管道([(“输入器”,simplemputer(strategy=“mean”),]))
#将两个管道聚合在一起
预处理=列变压器(
[
(“类别”,分类管道,分类列),
(“num”,数字管道,数字列),
]
)
rf=管道(
[(“预处理”,预处理),(“分类器”,线性模型。线性回归()
)
#训练
右前安装(X_系列、y_系列)
#预测
预测=射频预测(X_测试)
这表明,

>阵列([84.48275862,84.55172414,79.13793103])

对于演示,假设您有一个数据框,其中,
IQ
Gender
是输入特性。目标变量是
测试分数

|学生|智商|性别|测试分数|
|----------:|-----:|:---------|-------------:|
|1 | 125 |男| 93|
|2 | 120 |女| 86|
|3 | 115 |男| 96|
|4 | 110 |女| 81|
|5 | 105 |男| 92|
|6 | 100 |女性| 75|
|7 | 95 |男| 84|
|8 | 90 |女性| 77|
|9 | 85 |男| 73|
|10 | 80 |女| 74|
这里,
IQ
是数字特征,
Gender
是分类特征。在预处理步骤中,我们将对数值特征应用简单的插补器,对分类特征应用一个热编码器。您可以使用sklearn的
管道
&
ColumnTransformer
功能来实现这一点。然后,您可以使用您选择的模型轻松地进行训练和预测

将熊猫作为pd导入
从sklearn.compose导入ColumnTransformer
从sklearn.model\u选择导入列车\u测试\u拆分
从sklearn.pipeline导入管道
从sklearn.preprocessing导入OneHotEncoder
从sklearn.impute导入SimpleImputer
从sklearn导入线性_模型
#定义数据
d={
“学生”:[1,2,3,4,5,6,7,8,9,10],
“智商”:[125、120、115、110、105、100、95、90、85、80、],
“性别”:[
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
“男性”,
“女性”,
],
“测试分数”:[93,86,96,81,92,75,84,77,73,74],
}
#转换为数据帧
df=pd.数据帧(d)
#将学生id设置为索引以跟踪
df=df.设置索引(“学生”)
#柱变换
分类列=[“性别”]
数字列=[“IQ”]
#确定X
X=df[分类列+数字列]
y=df[“测试分数”]
#列车试验分离
X_列车,X_试验,y_列车,y_试验=列车试验(
十、 y,随机状态=42,测试尺寸=0.3
)
#分类管道
分类管道=管道([(“onehot”,OneHotEncoder(handle_unknown=“ignore”)))
#数字管道
数字管道=管道([(“输入器”,simplemputer(strategy=“mean”),]))
#将两个管道聚合在一起
预处理=列变压器(
[
(“类别”,分类管道,分类列),
(“num”,数字管道,数字列),