# Logistic_Regression **Repository Path**: cjfjack/Logistic_Regression ## Basic Information - **Project Name**: Logistic_Regression - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 利用TF-IDF算法分析文本的情感 - 情感分类: - negative: 0 - positive: 1 - train: 训练数据 - test: 训练数据 - 每个txt文档中,每行数据代表一个文本 - TF: - 每个文本中,每个词占该文本总词数的比例 - IDF: - 每个词的IDF等于log(训练文本总数 / (包含该词语的文本数 + 1),加1是为了避免分母为0 - TF-IDF : - 每个文本每个词语的TF * 该词对应的IDF,列表形式,列表中每个字典为一个训练文本 - [{idx1: tf-idf1-1, idx2: tf-idf1-2}, {idx1: tf-idf2-1, idx3: tf-idf2-2}, ...] - idx: 词语在self.dic中的索引,self.dic为所有训练文本中每个词语组成的字典,key为词,value为词在字典中索引位置 - 训练过程: 1. 求出每个训练文本每个词的tf-idf 2. 初始化每个词的theta参数,随机为0~1之间的浮点数 3. 对每个训练文本,将其对应的tf-idf字典代入sigmoid函数中,结果如果大于0.5,则为1,否则为0, 4. 将每个训练文本的sigmoid结果与实际分类相比较,得出错误率error,正确error为0,否则为1 5. 更新词语对应的theta参数,若error为零,则不更新,否则,theta += theta * 学习速率 * error 6. 直到遍历完所有训练文本,则theta更新了N次(N为训练文本总数) 7. 计算测试文本每个词的tf-idf,跟对应训练后的theta相乘后累加,经过sigmoid函数,得出预测结果