【发布时间】:2017-10-28 08:31:18
【问题描述】:
我想用随机森林算法分析“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)
【问题讨论】:
标签: python arrays machine-learning random-forest