【问题标题】:Encoding dataset index presents a type-error, why? [Machine Learning]编码数据集索引会出现类型错误,为什么? [机器学习]
【发布时间】:2022-01-06 00:49:36
【问题描述】:

数据集:https://docs.google.com/spreadsheets/d/1OBdyMv8yU7EEdlUNqk_Ox9gT2LMItY2DivEiVX4fYWY/edit?usp=sharing

所以我尝试将机器学习应用于数据集中的统计信息,但是每次我尝试编码/预处理我收到的数据时:

TypeError: Index does not support mutable operations

预处理的目的不是改变值吗? & 这不是应用机器学习的必要前提吗?不知道如何进行编码/预处理......任何建议表示赞赏。谢谢!

代码:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import datetime as dt

from sklearn import datasets, metrics
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
from sklearn.preprocessing import OrdinalEncoder
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score



dbdata = pd.read_excel("C:/Users/Andrew/sportsref_download.xlsx")

print(dbdata)
print(dbdata.describe())
df = dbdata.columns
print(df)

#define x&y
x = dbdata
y = dbdata.PTS

shapes = x.shape, y.shape
print(shapes)

print(dbdata.index)
print('next')

#apply logreg
logreg = LogisticRegression(solver='lbfgs')

cross_val_score(logreg, x, y, cv=2, scoring='accuracy').mean()
print(cross_val_score)

le = LabelEncoder()
df["date_tf"] = le.fit_transform(dbdata.Date)
df["tm_tf"] = le.fit_transform(df.Tm)
df["opp_tf"] = le.fit_transform(df.Opp)

OneHotEncoder().fit_transform(df[['date_tf']]).toarray()

Cols = ["Date","Tm","Opp"]
integer_encoded = OrdinalEncoder().fit_transform(x[Cols])



scaler = StandardScaler()
X_scaled = scaler.fit_transform(x)
print(X_scaled)

ec = OneHotEncoder()
X_encoded = dbdata.apply(lambda col: ec.fit_transform(col.astype(str)), axis=0, result_type='expand')
X_encoded = ec.fit_transform(x.values.reshape(-1,1), y)


print(X_encoded)
X_encoded = ec.fit_transform(x)

【问题讨论】:

    标签: python pandas machine-learning scikit-learn encoding


    【解决方案1】:

    错误是因为模型在非数值编码之前就已经拟合好了。
    您正在以日期格式提供模型数据,遗憾的是这不起作用。 这种性质的机器学习模型只接受数字或二进制数据。
    Sklearn documentation

    数据预处理是构建模型并将其部署到生产环境中最重要的部分之一。
    如果您需要帮助清理数据,只需发送消息即可。我很乐意提供帮助。
    否则,请参考:Intro article on data cleaning

    【讨论】:

    • 因为这是我的第一个此类项目,您能否帮助清理数据...以便我知道如何处理前进的事情?
    • 好的,我会在今天结束前将其发送给您,您是否有一封电子邮件,我可以用它来联系您,并在我完成后将代码和文档发送给您?跨度>
    • @truee 如果已经联系到您,能否请您删除您的电子邮件地址?
    • @user16524074 我做了,怎么来的?
    • @truee - 谢谢!您不希望机器人扫描网站然后向您发送垃圾邮件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2017-12-22
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多