早上好Stackoverflow社区!随机森林中的目标和独立变量(Python)
我想用随机森林算法分析“House Sales in King County”。到目前为止,我设法加载数据,准备数据 - 但我很努力选择正确的目标和自变量。
我的目标是,从数据集中选择所有变量作为输入变量,目标变量应该是价格。
我的代码(见下文)现在可以正常工作,但甚至没有接近我的目标(通过不同的变量预测价格)。我尝试了几种不同的方法 - 但一切都以错误结束(如:标签数量= 17与样本数量= 15128不匹配)。
这将是巨大的,如果有人可以帮助我解决这个问题:-)
# Load Libraries
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
from sklearn.cross_validation import train_test_split
import pandas as pd
dataset= pd.read_csv('kc_house_data.csv')
dataset = dataset.drop('id', axis=1)
dataset = dataset.drop('date', axis=1)
dataset = dataset.drop('zipcode', axis=1)
dataset = dataset.drop('long', axis=1)
cols = ['price', 'bathrooms', 'floors', 'bedrooms', 'sqft_living', 'sqft_lot', 'waterfront', 'view', 'condition', 'grade', 'lat', 'sqft_above']
dataset[cols] = dataset[cols].applymap(np.int64)
print(dataset.shape)
print(dataset.dtypes)
# Splitting Dataset
Train,Test = train_test_split(dataset, test_size = 0.3, random_state = 176)
Train_IndepentVars = Train.values[:, 3:5]
Train_TargetVar = Train.values[:,5]
Test_IndepentVars = Test.values[:, 3:5]
Test_TargetVar = Test.values[:,5]
##RF
main=['view', 'bedrooms', 'floors', 'grade']
rf_model = RandomForestClassifier(max_depth=30,n_estimators=15)
rf_model.fit(Train_IndepentVars, Train_TargetVar)
predictions = rf_model.predict(Train_IndepentVars)
###Confusion Matrix
from sklearn.metrics import confusion_matrix
# Confusion Matrix
print(" Confusion matrix ", confusion_matrix(Train_TargetVar, predictions))
importance = rf_model.feature_importances_
importance = pd.DataFrame(importance, index=Train.columns[3:5],
columns=["Importance"])
print(importance)
感谢您的回答! “估算人数”是什么意思?这正是关键 - 我想使用3个以上的功能 - 但我不知道代码如何。 –
我编辑了我的答案。请看看。 – pissall
感谢您的代码!不幸的是,它得到我:TypeError:'['浴室','地板','卧室','sqft_living','sqft_lot','waterfront','view','condition','grade','lat', 'sqft_above']'是无效的密钥。 –